W tym przewodniku omówię polecenia service i systemctl oraz różnice między nimi w zarządzaniu usługami.
Zanim przejdziemy dalej, przyjrzyjmy się najpierw dwóm popularnym systemom inicjującym Linuksa; System i Systemd.
System V kontra Systemd
System init w systemie Linux jest kluczową częścią procesu rozruchu. Jest to pierwszy proces z PID 1, który inicjuje się podczas uruchamiania systemu. Następnie uruchamia procesy obecne w pliku inittab. System V zna również SysV i systemd, które są popularnymi systemami inicjującymi Linuksa.
The SysV jest starszym systemem init i był częścią starszych dystrybucji Uniksa i Linuksa. Zarządza usługami systemowymi za pomocą skryptów znajdujących się w pliku /etc/init.d. Niektóre dystrybucje Linuksa, które nadal korzystają z SysV, to Slackware, Gentoo i antiX Linux.
Z drugiej strony, systemowy uruchomiony w 2010 roku i szybko został przyjęty w wielu dystrybucjach Linuksa. System init systemd zarządza usługami poprzez pliki .service. Jest teraz częścią wszystkich nowoczesnych dystrybucji Linuksa, w tym Red Hat Enterprise Linux, CentOS, Amazon Linux, Fedora, Debian, Ubuntu i dystrybucji opartych na tych systemach operacyjnych.
Systemd jest znacznie wydajniejszy w porównaniu do SysV. Zapewnia szybszy czas uruchamiania, wydajne zarządzanie usługami i obsługę zależności.
Obydwa systemy init udostępniają dwa narzędzia wiersza poleceń do zarządzania usługami.
W kolejnych rozdziałach przewodnika omówię te dwa narzędzia.
Dowództwo służby
The praca polecenie to opakowanie skryptu, które uruchamia skrypty znajdujące się w pliku /etc/init.d informator. Został opracowany do zarządzania usługami SysV Lub System V system startowy. Dystrybucje Linuksa, które używają SysV jako systemu init, używają praca polecenie zarządzania usługami.
Ogólna składnia polecenia service jest podana poniżej.
praca [ Nazwa serwisu ] [ działanie ]Aby uzyskać status usług kontrolowanych przez System V, użyj polecenia service z klawiszem –status-wszystko opcja.
praca --status-wszystko
The + wskazuje, że usługa jest uruchomiona, oraz – pokazuje, że usługa jest nieaktywna.
Aktualny status dowolnej konkretnej usługi można również sprawdzić, podając nazwę usługi.
praca [ Nazwa serwisu ] status
Poniżej wymieniono inne przydatne polecenia usług, takie jak uruchamianie, zatrzymywanie i ponowne uruchamianie usługi.
praca [ Nazwa serwisu ] początekpraca [ Nazwa serwisu ] zatrzymywać się
praca [ Nazwa serwisu ] uruchom ponownie
To polecenie usługi zapewnia podstawową kontrolę zarządzania usługami. Większość dystrybucji Linuksa zastąpiła SysV jako system init, ale ze względu na kompatybilność ze starszymi wersjami, to polecenie nadal jest dostępne w wielu najnowszych dystrybucjach Linuksa od razu po wyjęciu z pudełka.
Polecenie systemctl
Za pomocą polecenia systemctl możesz kontrolować usługi w pliku /lib/systemd/system I /etc/systemd/system katalogi. Jest składnikiem systemd; system init występujący w większości współczesnych dystrybucji Linuksa.
Systemctl ma na celu zapewnienie większej kontroli nad zarządzaniem usługami systemowymi. Ogólna składnia polecenia systemctl jest podana poniżej:
systemctl [ opcja ] [ Nazwa serwisu ]Aby sprawdzić stan wszystkich usług, użyj następującego polecenia.
jednostki list systemctl --typ =usługa --WszystkoW przypadku konkretnego zastosowania usługi:
stan systemctl [ Nazwa serwisu ]
Poniżej znajdują się komendy do podstawowego zarządzania usługą za pomocą systemctl:
systemctl włączać [ Nazwa serwisu ]start systemuctl [ Nazwa serwisu ]
systemctl zatrzymaj [ Nazwa serwisu ]
wyłącz systemctl [ Nazwa serwisu ]
ponowne uruchomienie systemuctl [ Nazwa serwisu ]
Komenda systemctl wykracza poza kontrolę usług. Poniższa tabela zawiera niektóre zaawansowane polecenia systemctl.
ścieżki list | Aby wyświetlić ścieżkę wszystkich usług w pamięci |
jest-aktywny [nazwa_usługi] | Aby sprawdzić, czy usługa lub jednostka działa, czy nie |
zależności listowe [nazwa_usługi] | Aby wydrukować listę zależności określonej usługi |
reset-nie powiodło się | Aby zresetować usługi, których nie udało się załadować z powodu pewnych nieprawidłowości |
maska [nazwa_usługi] | Aby wyłączyć usługę i uniemożliwić jej uruchomienie |
get-domyślny | Aby wydrukować domyślny poziom pracy lub cel |
ustaw-domyślnie [cel] | Aby ustawić domyślny poziom działania lub cel |
is-system-działa | Aby sprawdzić stan operacyjny systemu |
ponowne uruchomienie | Aby ponownie uruchomić system |
wyłączenie | Aby zamknąć system |
Dlaczego w dystrybucjach Linuksa nadal istnieje polecenie usługi z systemd init System
Polecenie service jest nadal częścią wielu dystrybucji Linuksa, ponieważ jest skryptem opakowującym i abstrakcyjnym bazowym systemem init, niezależnie od tego, czy jest to SysV, czy systemctl. Na przykład w systemie Ubuntu polecenie service przekierowuje do pliku systemctl.
Wniosek
Service i systemctl to dwa narzędzia wiersza poleceń należące odpowiednio do systemów init SysV i systemd. Pomimo zastąpienia polecenia service we współczesnych dystrybucjach Linuksa, pozostaje ono kluczowym narzędziem do utrzymywania usług ze względu na prostotę i kompatybilność. Z drugiej strony systemctl jest częścią wszystkich obecnych dystrybucji Linuksa i zapewnia zaawansowane opcje administrowania usługami.