start-stop-daemon [<option> ...] <command>
Forme brève | Forme longue | |
---|---|---|
-S | –start – <arguments> … | lance un programme et lui passe les arguments <arguments> |
-K | –stop | arrête un programme |
-T | –status | obtient l'état du programme |
-H | –help | affiche de l'aide |
-V | –version | affiche la version |
-p | –pidfile <pid-file> | fichier pid à vérifier |
---|---|---|
-x | –exec <executable> | programme à démarrer ou dont on veut vérifier s'il tourne |
-n | –name <process-name> | nom du processus à vérifier |
-u | --user <username|uid> | propriétaire de processus à vérifier |
-g | –group <group|gid> | lancer ce processus sous ce groupe |
---|---|---|
-c | --chuid <name|uid[:group|gid]> | se placer sous cet utilisateur ou ce groupe avant de lancer le processus |
-s | –signal <signal> | signal à envoyer (TERM par défaut) |
-a | –startas <pathname> | programme à lancer (par défaut : <exécutable>) |
-r | –chroot <directory> | s'enfermer (chroot) dans <répertoire> avant de démarrer |
-d | –chdir <directory> | aller à <directory> (/ par défaut) |
-N | –nicelevel <incr> | ajouter incr au niveau du processus |
-P | –procsched <policy[:prio]> | utiliser <policy> avec <prio> pour le gestionaire de processus du noyau (prio = 0 par défaut) |
-I | –iosched <class[:prio]> | utiliser <class> avec <prio> pour pour l'ordonnanceur d'entrées/sorties (prio = 4 par défaut) |
-k | –umask <mask> | changer umask en <masque> avant de commencer |
-b | –background | forcer le processus à se détacher |
-C | –no-close | ne fermer aucun descripteur de fichier |
-m | –make-pidfile | créer le fichier de pid avant de commencer |
-R | –retry <schedule> | vérifier si le processus a été tué et et réessayer |
-t | –test | mode de test, ne fait rien |
-o | –oknodo | retourne 0 (au lieu de 1) si rien n'est fait fait |
-q | –quiet | plus calme |
-v | –verbose | plus bavard |
Retry <schedule> is <item>|/<item>/… where <item> is one of
-<signal-num>|[-]<signal-name>
: send that signal
<timeout>
: wait that many seconds
or <schedule> may be just <timeout>, meaning <signal>/<timeout>/KILL/<timeout>
The process scheduler <policy> can be one of:
other, fifo or rr
The IO scheduler <class> can be one of:
real-time, best-effort or idle
0 | = done |
---|---|
1 | = nothing done (⇒ 0 if –oknodo) |
2 | = with –retry, processes would not die |
3 | = trouble |
0 | = program is running |
---|---|
1 | = program is not running and the pid file exists |
3 | = program is not running |
4 | = unable to determine status |
start-stop-daemon [option...] commande
courte | longue | explications |
---|---|---|
-S [--] paramètres | --start [--] paramètres | * S'il existe une instance du processus, start-stop-daemon se termine et retourne le code 1 * Sinon, une nouvelle instance est lancée.\\Tout argument donné après -- sur la ligne de commande est passé tel quel au programme lancé. |
-K | --stop | * S'il existe une instance du processus, start-stop-daemon lui envoie le signal précisé par –signal et retourne le code 0. * Sinon, il se termine et retourne le code 1. * Si –retry est indiquée, start-stop-daemon recherche si le processus ou les processus se sont bien terminés. |
-T | --status | * S'il existe une instance du processus, start-stop-daemon retourne un code défini par les actions des scripts d'initialisation de la LSB (« LSB Init Script Actions ») |
-H | --help | Affiche un message d'aide et quitte. |
-V | --version | Affiche la version et le copyright du programme et quitte. |
courte | longue | explications |
---|---|---|
-p | --pidfile pid-file | Contrôle si un processus a créé le fichier fichier-pid. Si l'ancien processus s'est terminé sans avoir effacé le fichier-pid, cette option peut donner des résultats imprévisibles |
-x | --exec exécutable | Contrôle l'existence d'instances de cet exécutable. Le paramètre exécutable doit être un chemin absolu. Cela peut ne pas fonctionner avec des scripts interprétés (l'exécutable est alors l'interpréteur). |
-n | --name nomdeprocessus | Contrôle l'existence de processus nommés nom-de-processus. Le nom-de-processus est en général le nom du fichier du processus. sur la plupart des systèmes, ce nom a une longueur limitée (15 caractères souvent, pour des raisons de portabilité). |
-u | --user nomdutilisateur|uid | Contrôle l'existence de processus dont le propriétaire est identifiant ou uid. Si cette option est utilisée seule, tous les processus de cet utilisateur seront concernés par l'action. |
courte | longue | explications | |
---|---|---|---|
-g | --group group|gid | Modifie le group ou le gid au début du processus. | |
-s | --signal signal | L'action --stop définit le signal d'arrêt à envoyer au processus (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. action-prévue Action à exécuter si le processus ne se termine pas. durée : 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 -signal-number ou de la forme [-]signal-name, 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 l'action-prévue se termine et sans le paramètre forever, start-stop-daemon se termine avec un code 2. Quand une action-prévue est indiquée, tout signal donné par –signal est ignoré. | |
-a | --startas chemin/nom | Avec l'action –start, lance le processus spécifié par chemin/nom. 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 | si rien n'est fait, retourne 0 au lieu de 1. | |
-q | --quiet | ||
-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 » (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 de répertoire racine pour root avant de lancer le processus. Remarquez que le « pidfile » est aussi écrit après le changement de racine. | |
-d | --chdir path | Change de répertoire pour chemin avant de commencer le processus. Cela est fait après le changement de répertoire racine si l'option -r | –chroot est demandée. Si rien n'est demandé, start-stop-daemon changera de répertoire racine avant de commencer le processus. |
-b | --background | Utilisé généralement pour les programmes qui ne « se détachent » pas d'eux-mêmes. Cette option oblige start-stop-daemon à se dupliquer (fork) avant de lancer le processus et l'oblige à passer en arrière-plan. AVERTISSEMENT : start-stop-daemon ne peut pas vérifier le code de sortie quand, pour une raison ou une autre, le processus échoue. C'est un expédient dont on se servira seulement pour des programmes dont la duplication n'a pas de sens ou bien des programmes dont le code n'est pas adaptable pour leur ajouter cette fonctionnalité. | |
-C | --no-close | Ne fermer aucun descripteur de fichiers en forçant le démon à s'exécuter en arrière-plan. 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. | |
-N | --nicelevel int | 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. 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. 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 mask | modifie le masque utilisateur du processus avant qu'il ne soit lancé. | |
-m | --make-pidfile | Utilisé lors du lancement d'un programme qui ne crée pas son propre fichier identificateur « pid ». Cette option indique à start-stop-daemon de créer le fichier référencé par –pidfile et placer le « pid » dans ce fichier juste avant d'exécuter le processus. Il faut remarquer que ce fichier n'est pas supprimé quand le programme s'arrête. NOTE : il se peut que cette caractéristique ne marche pas dans tous les cas. Notamment quand le programme qui est exécuté se duplique. À cause de cela, cette option n'est habituellement utile que combinée avec l'option –background. | |
-v | --verbose | Affiche des messages nombreux. |
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 –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. |
Avec la commande –status :
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émarrer le démon foo, à moins qu'il ne soit déjà en cours d'exécution (un processus nommé foo, tournant sous le nom d'utilisateur foo, avec un pid dans foo.pid) :
start-stop-daemon --start --oknodo --user foo --name foo \ --pidfile /run/foo.pid --startas /usr/sbin/foo \ --chuid foo -- --daemon
Envoyer le signal SIGTERM à foo et attendre son arrêt durant 5 secondes :
start-stop-daemon --stop --oknodo --user foo --name foo \ --pidfile /run/foo.pid --retry 5
Démonstration d'un ordonnanceur personnalisé pour l'arrêt de foo :
start-stop-daemon --stop --oknodo --user food --name food \ --pidfile /run/food.pid --retry=TERM/30/KILL/5