start-stop-daemon - Lance ou arrête des démons
système
start-stop-daemon [option...] commande
On se sert de start-stop-daemon pour contrôler la
création ou l'arrêt de processus système. En utilisant
une des options de correspondance, start-stop-daemon peut être
configuré pour trouver les exemplaires présents d'un processus
en fonctionnement.
Note: Unless --pid or --pidfile are
specified, start-stop-daemon behaves similar to killall(1).
start-stop-daemon will scan the process table looking for any
processes which match the process name, parent pid, uid, and/or gid (if
specified). Any matching process will prevent --start from starting
the daemon. All matching processes will be sent the TERM signal (or the one
specified via --signal or --retry) if --stop is
specified. For daemons which have long-lived children which need to live
through a --stop, you must specify a pidfile.
- -S, --start
[--] paramètres
- Vérifier l'existence d'un processus particulier. Quand il existe un
tel processus, start-stop-daemon ne fait rien et se termine avec un
code d'erreur égal à 1 (0 si --oknodo
est précisé). Quand un tel processus n'existe pas, un
exemplaire de l'exécutable est lancé, en utilisant le
paramètre de --exec ou celui de --startas si cette
option est précisée. Tout argument donné après
-- sur la ligne de commande est passé tel quel au programme
qui doit être lancé.
- -K, --stop
- Vérifier aussi l'existence d'un processus particulier. Quand un tel
processus existe, start-stop-daemon lui envoie le signal
précisé avec --signal et se termine avec un code
d'erreur égal à 0. Quand un tel processus n'existe
pas, start-stop-daemon se termine avec un code d'erreur égal
à 1 (0 si --oknodo est précisé).
Si --retry est indiquée, start-stop-daemon recherche
si le processus ou les processus se sont bien terminés.
- -T, --status
- Contrôle l'existence du processus indiqué et sort avec un
code de sortie défini par les actions des scripts d'initialisation
de la LSB (« LSB Init Script Actions »
– depuis la version 1.16.1).
- -H, --help
- Affiche un message d'aide, puis quitte.
- -V, --version
- Affiche la version du programme, puis quitte.
- [--pid] pid
- Vérifie l'existence d'un processus avec le pid
spécifié (depuis la version 1.17.6). Le pid
doit avoir un numéro supérieur à 0.
- [--ppid] pid parent
- Vérifie l'existence d'un processus avec le pid parent
pid-parent spécifié (depuis la
version 1.17.7). Le pid-parent doit avoir un numéro
supérieur à 0.
- -p, --pidfile
pidfile
- Check whether a process has created the file pidfile.
Note: Using this matching option alone might cause
unintended processes to be acted on, if the old process terminated
without being able to remove the pidfile.
Warning: Using this match option with a world-writable
pidfile or using it alone with a daemon that writes the pidfile as an
unprivileged (non-root) user will be refused with an error (since
version 1.19.3) as this is a security risk, because either any user can
write to it, or if the daemon gets compromised, the contents of the
pidfile cannot be trusted, and then a privileged runner (such as an init
script executed as root) would end up acting on any system process.
Using /dev/null is exempt from these checks.
- -x, --exec
exécutable
- Check for processes that are instances of this executable. The
executable argument should be an absolute pathname.
Note: This might not work as intended with interpreted
scripts, as the executable will point to the interpreter. Take into
account processes running from inside a chroot will also be matched, so
other match restrictions might be needed.
- -n, --name
nom-de-processus
- Check for processes with the name process-name. The
process-name is usually the process filename, but it could have
been changed by the process itself.
Note: On most systems this information is retrieved
from the process comm name from the kernel, which tends to have a
relatively short length limit (assuming more than 15 characters is
non-portable).
- -u, --user
identifiant|uid
- Check for processes owned by the user specified by username or
uid.
Note: Using this matching option alone will cause all
processes matching the user to be acted on.
- -g, --group
groupe|gid
- Modifie le groupe ou le gid au début du
processus.
- -s, --signal
signal
- L'action --stop définit le signal à envoyer au
processus qui doit être arrêté (par
défaut : TERM).
- -R, --retry
durée|action-prévue
- Avec l'action --stop, start-stop-daemon doit vérifier
que les processus se sont terminés. Il le fait pour tous les
processus correspondants qui tournent, jusqu'à ce qu'il n'y en ait
plus. Quand le processus ne se termine pas, il prend d'autres mesures
déterminées par l'action-prévue.
Si durée est indiquée plutôt que
action-prévue, l'action-prévue
signal/durée/KILL/durée
est utilisée, où signal est le signal
indiqué par --signal.
action-prévue est une liste d'au moins deux
items séparés par des barres obliques (/) ;
chaque item peut être de la forme
-numéro-signal ou de la forme
[-]nom-signal, ce qui demande d'envoyer ce signal ;
ou bien de la forme durée, ce qui demande d'attendre tant
de secondes avant de terminer les processus, ou bien de la forme
forever, ce qui demande de répéter constamment le
reste de action-prévue, si nécessaire.
Quand la fin de l'action-prévue est atteinte et que
forever n'a pas été précisé,
start-stop-daemon se termine avec un code d'erreur égal
à 2. Quand une action-prévue est indiquée,
tout signal donné par --signal est ignoré.
- -a, --startas
nom-de-chemin
- Avec l'action --start, lance le processus spécifié
par nom-de-chemin. Si rien n'est précisé, c'est par
défaut l'argument donné à --exec.
- -t, --test
- Affiche les actions qui seraient entreprises et détermine la bonne
valeur de retour, mais ne fait rien.
- -o, --oknodo
- Retourne un code de sortie égal à 0 au lieu de
1 si rien n'est ou ne sera fait.
- -q, --quiet
- N'affiche pas de messages d'information ; affiche seulement les
messages d'erreur.
- -c, --chuid
identifiant|uid[:groupe|gid]
- Change pour cet utilisateur ou « uid » avant
de lancer le processus. On peut aussi préciser un groupe en
ajoutant un :, puis le groupe ou un
« gid » de la même façon qu'avec
la commande chown(1) (utilisateur:groupe).
Lorsqu'un utilisateur est indiqué mais pas de groupe alors le
groupe primaire de celui-ci est utilisé. Quand on utilise cette
option, on doit veiller à ce que les groupes primaires ainsi que
les groupes secondaires existent bien, même si l'option
--group n'est pas spécifiée. L'option --group
sert seulement pour les groupes dont l'utilisateur n'est pas membre (c'est
comme rendre membre d'un groupe-pour-processus des utilisateurs
génériques comme nobody).
- -r, --chroot
root
- Change directory and chroot to root before starting the process.
Please note that the pidfile is also written after the chroot.
- -d, --chdir
chemin
- Change directory to path before starting the process. This is done
after the chroot if the -r|--chroot option is set. When not
specified, start-stop-daemon will change directory to the root
directory before starting the process.
- -b,
--background
- Typically used with programs that don't detach on their own. This option
will force start-stop-daemon to fork before starting the process,
and force it into the background.
Warning: start-stop-daemon cannot check the exit status
if the process fails to execute for any reason. This is a last
resort, and is only meant for programs that either make no sense forking
on their own, or where it's not feasible to add the code for them to do
this themselves.
- --notify-await
- Attend que le processus en arrière-plan envoie une notification de
disponibilité avant de considérer que le service est
démarré (depuis la version 1.19.3). Cela met en
œuvre des éléments du protocole de
disponibilité de systemd, comme spécifié dans la page
de manuel de sd_notify(3). Les variables suivantes sont prises en
charge :
- READY=1
- Le programme est prêt à offrir son service, il est possible
de quitter sans risque.
- EXTEND_TIMEOUT_USEC=nombre
- Le programme demande l'extension de la durée de nombre
microsecondes. Cela fixera la durée en cours à la valeur
spécifiée.
- ERRNO=
nombre
- Le programme s'est terminé avec une erreur. Fait la même
chose et affiche une chaîne conviviale pour la valeur de
errno.
- --notify-timeout
timeout
- Définit une durée pour l'option --notify-await
(depuis la version 1.19.3). Quand la durée est atteinte,
start-stop-daemon s'arrête avec un code d'erreur et aucune
notification de disponibilité n'est attendue. La durée par
défaut est de 60 secondes.
- -C,
--no-close
- Ne fermer aucun descripteur de fichiers en forçant le démon
à s'exécuter en arrière-plan (depuis la
version 1.16.5). Utilisé à des fins de
débogage afin de voir ce qu'affiche le processus ou pour rediriger
les descripteurs de fichiers pour journaliser l'affichage du processus.
N'est pertinent que lors de l'utilisation de --background.
- -O, --output
pathname
- Redirect stdout and stderr to pathname when forcing
the daemon into the background (since version 1.20.6). Only relevant when
using --background.
- -N, --nicelevel
int
- Cela modifie la priorité du processus avant qu'il ne soit
lancé.
- -P, --procsched
politique:priorité
- Modifie la politique du programmateur de processus
(« process scheduler policy ») et la
priorité du processus avant de le démarrer (depuis la
version 1.15.0). La priorité peut être
indiquée de manière facultative avec : suivi de la
valeur souhaitée. La priorité par défaut
est 0. Les valeurs de politiques actuellement gérées
sont other, fifo et rr.
- -I, --iosched
classe:priorité
- Modifie la classe du programmateur d'entrée/sortie
(« IO scheduler ») et la priorité du
processus avant de le démarrer (depuis la version 1.15.0).
La priorité peut être indiquée de manière
facultative avec : suivi de la valeur souhaitée. La
priorité par défaut est 4, sauf si
classe est idle, auquel cas priorité sera
toujours égale à 7. Les valeurs de classe
actuellement gérées sont idle, best-effort et
real-time.
- -k, --umask
masque
- Cela modifie le masque utilisateur du processus avant qu'il ne soit
lancé (depuis la version 1.13.22).
- -m,
--make-pidfile
- Used when starting a program that does not create its own pid file. This
option will make start-stop-daemon create the file referenced with
--pidfile and place the pid into it just before executing the
process. Note, the file will only be removed when stopping the program if
--remove-pidfile is used.
Note: This feature may not work in all cases. Most
notably when the program being executed forks from its main process.
Because of this, it is usually only useful when combined with the
--background option.
- --remove-pidfile
- Utilisé lors de l'arrêt d'un programme qui ne supprime pas
lui-même son fichier identificateur
« pid » (depuis la version 1.17.19).
Cette option indique à start-stop-daemon de supprimer le
fichier référencé par --pid-file après
l'arrêt du processus.
- -v, --verbose
- Affiche des messages prolixes en renseignements.
- 0
- L'action demandée a été effectuée. Si
--oknodo était indiqué, il est également
possible que rien ne se soit passé. Cela peut se produire si
--start était indiqué et qu'un processus
correspondant était déjà en train de
s'exécuter ou si --stop était indiqué et
qu'aucun processus ne correspondait.
- 1
- Si --oknodo n'était pas indiqué et que rien ne s'est
passé.
- 2
- Si --stop et --retry étaient indiqués mais que
la fin de la planification a été atteinte et que les
processus étaient toujours en cours d'exécution.
- 3
- Toute autre erreur.
Lorsque la commande --status est utilisée, les codes
d'état suivants sont renvoyés :
- 0
- Le programme est en cours d'exécution.
- 1
- Le programme n'est pas en cours d'exécution et le fichier PID
existe.
- 3
- Le programme n'est pas en cours d'exécution.
- 4
- Impossible de déterminer l'état du programme.
Démarre le démon food, à moins qu'il
soit déjà en cours d'exécution (un processus
nommé food, tournant sous le nom d'utilisateur food,
avec un pid dans food.pid) :
start-stop-daemon --start --oknodo --user food --name food \
--pidfile /run/food.pid --startas /usr/sbin/food \
--chuid food -- --daemon
Envoie le signal SIGTERM à food et attend
durant 5 secondes son arrêt :
start-stop-daemon --stop --oknodo --user food --name food \
--pidfile /run/food.pid --retry 5
Démonstration d'un ordonnanceur personnalisé pour
l'arrêt de food :
start-stop-daemon --stop --oknodo --user food --name food \
--pidfile /run/food.pid --retry=TERM/30/KILL/5
Ariel VARDI <ariel.vardi@freesbee.fr>, 2002. Philippe
Batailler, 2006. Nicolas François, 2006. Veuillez signaler toute
erreur à <debian-l10n-french@lists.debian.org>.