service to klasyczne narzędzie do zarządzania usługami systemowymi w Linuksie. Wywołuje skrypty startowe z katalogu /etc/init.d, dzięki czemu możesz uruchomić, zatrzymać czy zrestartować demona (np. serwer WWW albo bazę danych) jednym krótkim poleceniem, nie szukając ścieżki do skryptu. Pochodzi z czasów SysVinit i Upstart, ale na nowoczesnych dystrybucjach (z systemd) zostało jako wygodna owijka, która po cichu przekierowuje twoje polecenia do systemctl. Krótko mówiąc: stary nawyk, który nadal działa.
Składnia i najważniejsze opcje
Podstawowa forma to: service NAZWA_USŁUGI POLECENIE, np. sudo service nginx restart. Najczęściej używasz tych poleceń i opcji:
start— uruchamia usługę.stop— zatrzymuje usługę.restart— zatrzymuje i od razu uruchamia ponownie (twardy restart).reload— przeładowuje konfigurację bez zrywania działającej usługi (jeśli skrypt to obsługuje).status— pokazuje, czy usługa działa.--status-all— wypisuje listę wszystkich znanych usług init.d wraz ze stanem.force-reload— przeładowuje konfigurację, a gdy usługa tego nie wspiera, robi pełny restart.
Przykłady użycia
sudo service apache2 start— uruchamia serwer Apache.sudo service mysql restart— restartuje bazę MySQL, np. po zmianie konfiguracji.service ssh status— sprawdza, czy demon SSH działa (status zwykle obejrzysz bez sudo).sudo service nginx reload— przeładowuje konfigurację Nginxa bez rozłączania bieżących połączeń.service --status-all | less— przegląda stan wszystkich usług, stronicując wynik.
Częste błędy i pułapki
Najczęstsza wpadka to brak sudo — start, stop i restart wymagają uprawnień roota, więc dostaniesz błąd o odmowie dostępu. Druga rzecz: nazwa usługi musi odpowiadać nazwie skryptu w /etc/init.d, a ta bywa różna między dystrybucjami (apache2 na Debianie i Ubuntu, ale httpd na RHEL, Fedorze czy CentOS-ie). Pamiętaj też o kolejności argumentów: to service nginx restart, nie service restart nginx — odwrotnie nie zadziała.
Na systemach z systemd service tylko opakowuje systemctl, więc usługi włączone wyłącznie jako jednostki systemd (bez skryptu init.d) mogą się nie pokazać w --status-all. Jeśli coś działa dziwnie albo potrzebujesz włączyć usługę przy starcie systemu (enable), sięgnij wprost po systemctl — service tego nie potrafi.
Polecenia powiązane: systemctl, chkconfig, update-rc.d, journalctl, ps.