DOKK / manpages / debian 11 / dpkg / start-stop-daemon.8.fr
start-stop-daemon(8) dpkg suite start-stop-daemon(8)

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.

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é.
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.
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).
Affiche un message d'aide, puis quitte.
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.
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.

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.

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).

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.

Modifie le groupe ou le gid au début du processus.
L'action --stop définit le signal à envoyer au processus qui doit être arrêté (par défaut : TERM).
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é.

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.
Affiche les actions qui seraient entreprises et détermine la bonne valeur de retour, mais ne fait rien.
Retourne un code de sortie égal à 0 au lieu de 1 si rien n'est ou ne sera fait.
N'affiche pas de messages d'information ; affiche seulement les messages d'erreur.
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).
Change directory and chroot to root before starting the process. Please note that the pidfile is also written after the chroot.
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.
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.

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 :
Le programme est prêt à offrir son service, il est possible de quitter sans risque.
Le programme demande l'extension de la durée de nombre microsecondes. Cela fixera la durée en cours à la valeur spécifiée.
Le programme s'est terminé avec une erreur. Fait la même chose et affiche une chaîne conviviale pour la valeur de errno.
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.
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.
Redirect stdout and stderr to pathname when forcing the daemon into the background (since version 1.20.6). Only relevant when using --background.
Cela modifie la priorité du processus avant qu'il ne soit lancé.
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.
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.
Cela modifie le masque utilisateur du processus avant qu'il ne soit lancé (depuis la version 1.13.22).
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.

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.
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>.

2023-09-13 1.20.13