NAZWA¶
start-stop-daemon - uruchamia i zatrzymuje demony systemowe
SKŁADNIA¶
start-stop-daemon [
opcja...]
polecenie
OPIS¶
start-stop-daemon jest wykorzystywany do kontroli procesów
uruchamianych i zatrzymywanych podczas przełączania trybów
pracy. Przez użycie jednej z opcji dopasowywania, można
skonfigurować
start-stop-daemon do wyszukiwania istniejących
instancji działającego procesu.
Proszę zauważyć, że jeżeli nie podano opcji
--pidfile, to
start-stop-daemon zachowuje się podobnie do
killall(1).
start-stop-daemon przejrzy tabelę
procesów, szukając jakiegokolwiek procesu o zgodnej nazwie,
identyfikatorze użytkownika i/lub grupy (jeżeli je podano).
Znalezienie jakiegokolwiek pasującego procesu spowoduje, że
--start nie uruchomi procesu. W wypadku opcji
--stop do
wszystkich pasujących procesów zostanie wysłany sygnał
TERM (lub inny, określony w opcji
--signal lub
--retry).
Dla procesów mających długo żyjące procesy potomne,
które muszą przeżyć operację
--stop,
należy określić plik pidfile.
POLECENIA¶
- -S, --start [--] argumenty
- Sprawdza, czy dany proces jest już uruchomiony.
Jeśli tak jest, to start-stop-daemon nie wykonuje żadnych
czynności i kończy się, zwracając kod błędu
1 (lub 0, jeśli podano opcję --oknodo). Jeśli dany
proces nie jest jeszcze uruchomiony, to go uruchamia, wykonując
program określony albo opcją --exec, albo jeśli
podano, opcją --startas. Wszelkie argumenty podane tuż po
opcji -- są przekazywane do wykonywanego polecenia.
- -K, --stop
- Sprawdza, czy dany proces jest już uruchomiony.
Jeśli tak jest, to start-stop-daemon wysyła sygnał
określony opcją --signal i kończy swoją
pracę z kodem błędu 0. Jeśli proces nie istnieje,
start-stop-daemon kończy się z kodem błędu 1
(lub 0, jeśli podano opcję --oknodo). Jeżeli podano
opcję --retry, to start-stop-daemon sprawdzi, czy
proces(y) się zakończył(y).
- -T, --status
- Sprawdza istnienie podanego procesu i zwraca kod
zakończenia, zgodnie z LSB Init Script Actions.
- -H, --help
- Wyświetla informację o użytkowaniu programu
i kończy działanie.
- -V, --version
- Wyświetla informację o wersji programu i
kończy działanie.
OPCJE DOPASOWYWANIA¶
- -p, --pidfile plik-pid
- Sprawdza, czy proces utworzył plik plik-pid.
Uwaga: używając wyłącznie tej opcji dopasowania
można wywołać działanie na niewłaściwym
procesie, jeśli stary proces zakończył się bez
możliwości usunięcia pliku-pid.
- -x, --exec plik_wykonywalny
- Sprawdza procesy, będące instancją danego
pliku-wykonywalnego Argument plik-wykonywalny powinien
być pełną nazwą ścieżkową. Uwaga:
może to nie działać zgodnie z intencją w skryptach
interpretowanych, jako że plik wykonywalny będzie wskazywał
na interpreter. Proszę ziąć pod uwagę, że procesy
działające wewnątrz chroota również zostaną
dopasowane, więc mogą być konieczne dodatkowe warunki
dopasowania.
- -n, --name nazwa-procesu
- Sprawdza procesy o nazwie nazwa-procesu.
Nazwa-procesu jest z reguły plikową nazwą procesu,
ale niekiedy może zostać zmieniona przez sam proces. Uwaga: w
większości systemów informacja ta jest pobierana z nazwy
comm procesu z jądra, która może mieć stosunkowo
duże graniczenie długości (zakładanie więcej
niż 15 znaków nie będzie przenośne).
- -u, --user username|uid
- Sprawdza procesy będące własnością
użytkownika określonego nazwą-użytkownika lub
uid-em. Uwaga: używanie samej opcji dopasowania spowoduje,
że pod uwagę będą wzięte wszystkie procesy z
pasującym użytkownikiem.
OPCJE¶
- -g, --group group|gid
- Podczas uruchamiania procesu zmienia grupę na
grupę lub gid.
- -s, --signal sygnał
- Przy operacji --stop, wysyłany jest sygnał
o podanej wartości do zatrzymywanego procesu (domyślnie jest to
TERM).
- -R, --retry
timeout|plan-działania
- W czasie operacji --stop powoduje sprawdzenie przez
start-stop-daemon, czy proces(y) się zakończył(y).
Sprawdzanie jest powtarzane, jeżeli działa jakikolwiek
pasujący proces, dopóki wszystkie się nie
skończą. Jeżeli procesy się nie zakończą,
podejmowane są akcje określone przez parametr
plan-działania.
Jeżeli określono timeout zamiast
planu-działania, to wtedy używany jest
następujący plan działania:
sygnał/timeout /KILL/timeout,
gdzie sygnał jest określony za pomocą opcji
--signal.
plan-działania jest listą co najmniej dwóch
wartości oddzielonych znakami ukośnika ( /);
każdą z tych wartości może być albo
-numer-sygnału lub [
-]nazwa-sygnału, co oznacza wysłanie tego
sygnału, albo timeout, określający liczbę
sekund, którą należy czekać na zakończenie
procesu, albo forever, oznaczający, że reszta planu
działania ma być powtarzana dopóki jest to konieczne.
Jeżeli osiągnięto koniec planu działania, a opcja
forever nie została użyta, to start-stop-daemon
kończy działanie z kodem błędu 2. Jeżeli
został określony plan działania, to sygnał podany w
--signal jest ignorowany.
- -a, --startas
nazwa-ścieżki
- Przy operacji --start, Uruchamiany jest program o
określonej ścieżce. Jeśli brak tej opcji,
domyślnie uruchamiany jest program podany w opcji --exec.
- -t, --test
- Wyświetlana jest czynność, jaką
należałoby wykonać, a także zwracany jest odpowiedni
kod błędu, jednakże opcja ta nie wykonuje żadnych
operacji.
- -o, --oknodo
- Zwracany jest kod błędu 0, nawet gdyby operacja
nie zakończyła się powodzeniem (zwróciłaby
1).
- -q, --quiet
- Nie są wyświetlane żadne informacje
oprócz komunikatów o błędach.
- -c, --chuid
użytkownik|uid[ :grupa|gid]
- Zmiana użytkownika/uid przed uruchomieniem procesu.
Można także zmienić grupę przez dołączenie
: wraz z nazwą grupy bądź numerem gid, podobnie jak
w poleceniu "chown" (
użytkownik:grupa). Jeżeli nie podano grupy,
to zostanie użyta podstawowa grupa tego użytkownika. Podczas
korzystania z tej opcji należy pamiętać, że grupa
główna i poboczne zostaną ustawione, nawet gdy nie podano
opcji --group. Opcja --group jest przydatna tylko dla grup,
których podany użytkownik nie jest członkiem (na
przykład przy dodawaniu procesowi członkostwa grupy dla takich
użytkowników jak nobody).
- -r, --chroot root
- Zmienia katalog bieżący na root i czyni go
głównym katalogiem (rootem) przed wystartowaniem procesu.
Proszę zauważyć, że plik pidfile jest tworzony po
wykonaniu chroot.
- -d, --chdir ścieżka
- Przed uruchomieniem procesu zmienia katalog
bieżący na ścieżkę. Robione jest to przed
zmienieniem głównego katalogu (roota), jeżeli podano
również opcję -r|--chroot. Jeśli nie
podano tej opcji, to przed uruchomieniem procesu start-stop-daemon
ustawi jego katalog bieżący na główny katalog
(root).
- -b, --background
- Zwykle używa się tej opcji dla programów,
które nie odłączają się od terminala (detach)
samoistnie. Ta opcja spowoduje, że start-stop-daemon utworzy
proces potomny przed uruchomieniem programu i będzie kontynuować
go w tle. OSTRZEŻENIE: start-stop-daemon nie może
sprawdzić kodu błędu, jeżeli proces się nie
wykona z jakiegokolwiek powodu. Ta opcja powinna być
używana w ostateczności i jest przewidziana tylko dla
programów, które same nie tworzą procesów potomnych i
nie jest możliwe dodanie do samego programu kodu uruchamiającego
proces potomny.
- -C, --no-close
- Nie zamyka żadnego deskryptora pliku podczas
wymuszania przejścia demona w tło. Używane w celach
debugowania do zobaczenia wyniku procesu lub do przekierowania
deskryptorów pliku do logu wyniku procesu. Ma znaczenie tylko podczas
używania --background.
- -N, --nicelevel liczba
- Zmienia priorytet uruchamianego procesu.
- -P, --procsched
polityka:priorytet
- Zmienia politykę i priorytet planisty procesów
dla procesu przed jego uruchomieniem. Priorytet może być
opcjonalnie określony przez dodanie : po którym jest
podana wartość. Domyślnym priorytetem jest 0.
Aktualnie wspierane wartości dla polityki to other,
fifo oraz rr.
- -I, --iosched
klasa:priorytet
- Zmienia klasę i priorytet planisty
wejścia/wyjścia dla procesu przed jego uruchomieniem. Priorytet
może być opcjonalnie określony przez dodanie : po
którym jest podana wartość. Domyślnym
priorytetem jest 4, chyba że wartością klasy
jest idle, w którym to przypadku priorytet będzie
zawsze równy 7. Aktualnie wspierane wartości dla klasy to
idle, best-effort oraz real-time.
- -k, --umask maska
- Ustawia maskę praw dostępu (umask) procesu przed
jego uruchomieniem.
- -m, --make-pidfile
- Opcja używana, gdy program sam nie tworzy
własnego pliku pid. Wykorzystanie tej opcji spowoduje, że
start-stop-daemon utworzy plik, który został podany w
opcji --pidfile i umieści w nim numer pid tuż przed
uruchomieniem procesu. Należy zauważyć, że ta opcja
nie skasuje tego pliku po zatrzymaniu programu. UWAGA: Ta opcja
może nie zadziałać w każdym przypadku. Nie
zadziała przede wszystkim wtedy, gdy uruchamiany program utworzy
proces potomny. Z tego powodu opcja jest użyteczna jedynie wraz z
opcją --background.
- -v, --verbose
- Wyświetlane są dodatkowe komunikaty.
KOD WYJŚCIA¶
- 0
- Żądana akcja została przeprowadzona.
Jeżeli użyto --oknodo, to istnieje również
możliwość, że nic nie zostało wykonane. Może
się to stać, gdy podano --start, a pasujący proces
już działał lub gdy podano --stop i nie znaleziono
pasującego procesu.
- 1
- Jeżeli --oknodo nie zostało podane i nic
nie zostało zrobione.
- 2
- Jeżeli podano --stop i --retry, ale
osiągnięto koniec harmonogramu, a procesy wciąż
były uruchomione.
- 3
- Każdy inny błąd.
Podczas użycia polecenia
--status zwracane są
następujące kody statusu:
- 0
- Program działa.
- 1
- Program nie działa, a plik PID-u istnieje.
- 3
- Program nie działa.
- 4
- Nie można określić statusu programu.
PRZYKŁAD¶
Uruchamia demon
food, jeśli jeszcze nie działa (proces nazwany
food, działający jako użytkownik food, z identyfikatorem
procesu w pliku food.pid):
-
start-stop-daemon --start --oknodo --user food --name food \
--pidfile /run/food.pid --startas /usr/sbin/food \
--chuid food -- --daemon
Wyślij
SIGTERM do
food i czekaj do 5 sekund na jego
zakończenie:
-
start-stop-daemon --stop --oknodo --user food --name food \
--pidfile /run/food.pid --retry 5
Przykład własnego planu zatrzymywania
food:
-
start-stop-daemon --stop --oknodo --user food --name food \
--pidfile /run/food.pid --retry=TERM/30/KILL/5
TŁUMACZE¶
Piotr Roszatycki <dexter@debian.org>, 1999
Bartosz Feński <fenio@debian.org>, 2004-2005
Robert Luberda <robert@debian.org>, 2006-2008
Wiktor Wandachowicz <siryes@gmail.com>, 2008
Michał Kułach <michal.kulach@gmail.com>, 2012