Podczas pracy z usługi w dystrybucjiW zależności od typu używanego systemu (SysV init, Upstart, systemd,…), sposób, w jaki usługi mogą być zatrzymywane, uruchamiane, zatrzymywane, restartowane itp. Może się różnić. Jest to punkt, w którym wielu wątpi, jak to się właściwie robi, a fakt, że istnieje kilka różnych systemów, nie pomaga bardziej niedoświadczonym użytkownikom, którzy próbują to zrobić złym poleceniem.
Dlatego pokażę prosty samouczek, dzięki któremu będzie dla ciebie jaśniejsze, jak możesz pracować w swojej dystrybucji, cokolwiek to jest. Aby to zrobić, pierwszą rzeczą, o której musisz wiedzieć, jest rodzaj demona, którego używasz. Jak powiedziałem, nie wszystkie dystrybucje używają tego samego typ systemu startowego. W rzeczywistości, jak wiesz, niektórzy sprzeciwiają się nowemu systemd i wygenerowali forki lub pochodne ze starym SysV, tak jak ma to miejsce w przypadku Devuana w porównaniu z Debianem ...
Skąd mam wiedzieć, z jakiego systemu korzysta moja dystrybucja? Możesz się tego dowiedzieć, szukając tych tras, a jeśli je masz, będziesz mieć ten system w swojej dystrybucji:
- Aby wiedzieć, czy masz systemd: znajdź ścieżkę / usr / lib / systemd
- Aby wiedzieć, czy masz Upstart: znajdź tę inną ścieżkę / usr / share / upstart
- Aby wiedzieć, czy masz init SysV: znajdź ścieżkę /etc/init.d
- Siano inniNawet jeśli jest to trochę rzadsze, w tych szczególnych przypadkach możesz zrobić coś podobnego, jeśli podejrzewasz, że nie są one wymienione powyżej.
Kolejny sposób, aby było to jeszcze łatwiejszeponieważ dla każdego jest tak samo, to w / proc należy szukać informacji o PID = 1, czyli o pierwszym procesie, z którego reszta się zawiesza i który dokładnie odpowiada temu demonowi startowemu. Aby to zrobić, po prostu uruchom następujące polecenie, a zwróci ono nazwę:
sudo stat /proc/1/exe
Teraz już wiesz, jaki masz system, więc przejdźmy polecenia, których możesz używać do zarządzania usługami:
- Rozpoczęcie SysV: /etc/init.d/[service_demon_name] [akcja]
- systemd: systemctl [akcja] [nazwa_ demona_usługi]
- Dorobkiewicz: usługa [nazwa_demon_usługi] [akcja]
- inni: Jeśli używasz innego systemu, lepiej zapoznaj się z instrukcją. Na przykład w niektórych rzadkich przypadkach w Linuksie i innych Uniksach sygnał z procesu SIGHUP może być używany do resetowania usługi: kill -HUP $ (cat / var / run / [service-PID])
zalecana zamień [czynność] za to, co musisz zrobić. Na przykład, jeśli chcesz ponownie uruchomić, użyj resetowania, jeśli chcesz przestać, użyj stop, jeśli chcesz rozpocząć, użyj gwiazdki itp. I zamień [daemon_name] na nazwę demona usługi, którą chcesz uruchomić. Na przykład:
systemctl reset httpd
Mam nadzieję, że teraz masz to jaśniej.
Czy nadal istnieją systemy z upstartem? Myślę, że tylko jakiś stary Ubuntu.
Nawet jeśli masz systemd, nadal możesz mieć folder etc / init.d
Wolę użyć innego polecenia, takiego jak ps lub pstree, i nie nadużywać sudo-this-sudo-that.
pozdrowienia
Polecenie „service” działa zarówno w systemie init.d, jak i systemd