.\" dpkg manual page - start-stop-daemon(8) .\" .\" Copyright © 1999 Klee Dienes .\" Copyright © 1999 Ben Collins .\" Copyright © 2000-2001 Wichert Akkerman .\" Copyright © 2002-2003 Adam Heath .\" Copyright © 2004 Scott James Remnant .\" Copyright © 2008-2016, 2018 Guillem Jover .\" .\" This is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2 of the License, or .\" (at your option) any later version. .\" .\" This is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see . . .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH start\-stop\-daemon 8 2019-06-03 1.19.7 "suite dpkg" .nh .SH NOM start\-stop\-daemon \- Lance ou arr\(^ete des d\('emons syst\(`eme . .SH SYNOPSIS \fBstart\-stop\-daemon\fP [\fIoption\fP...] \fIcommande\fP . .SH DESCRIPTION On se sert de \fBstart\-stop\-daemon\fP pour contr\(^oler la cr\('eation ou l'arr\(^et de processus syst\(`eme. En utilisant les options correspondantes, \fBstart\-stop\-daemon\fP peut \(^etre configur\('e pour trouver les exemplaires pr\('esents d'un processus en fonctionnement. .PP Veuillez noter qu'\(`a moins d'utiliser \fB\-\-pid\fP ou \fB\-\-pidfile\fP, le programme \fBstart\-stop\-daemon\fP se comporte comme \fBkillall\fP(1). \fBstart\-stop\-daemon\fP recherche dans le tableau des processus tout processus qui correspond au nom, pid parent, uid et/ou gid du processus (si indiqu\('e). Toute correspondance emp\(^echera \fB\-\-start\fP de d\('emarrer le d\('emon. Tous les processus qui correspondent recevront le signal TERM (ou le signal indiqu\('e par \fB\-\-signal\fP ou \fB\-\-retry\fP) si \fB\-\-stop\fP est indiqu\('e. Pour les d\('emons avec des processus enfant qui doivent survivre \(`a un \fB\-\-stop\fP, il est n\('ecessaire d'indiquer un fichier pid (\(Fo\ pidfile\ \(Fc). . .SH COMMANDES .TP \fB\-S\fP, \fB\-\-start\fP [\fB\-\-\fP] \fIparam\(`etres\fP V\('erifier l'existence d'un processus particulier. Quand il existe un tel processus, \fBstart\-stop\-daemon\fP ne fait rien et se termine avec un code d'erreur \('egal \(`a \fB1\fP (\fB0\fP si \fB\-\-oknodo\fP est pr\('ecis\('e). Quand un tel processus n'existe pas, un exemplaire de l'ex\('ecutable est lanc\('e, en utilisant le param\(`etre de \fB\-\-exec\fP ou celui de \fB\-\-startas\fP si cette option est pr\('ecis\('ee. Tout argument donn\('e apr\(`es \fB\-\-\fP sur la ligne de commande est pass\('e tel quel au programme qui doit \(^etre lanc\('e. .TP \fB\-K\fP, \fB\-\-stop\fP V\('erifier aussi l'existence d'un processus particulier. Quand un tel processus existe, \fBstart\-stop\-daemon\fP lui envoie le signal pr\('ecis\('e avec \fB\-\-signal\fP et se termine avec un code d'erreur \('egal \(`a \fB0\fP. Quand un tel processus n'existe pas, \fBstart\-stop\-daemon\fP se termine avec un code d'erreur \('egal \(`a \fB1\fP (\fB0\fP si \fB\-\-oknodo\fP est pr\('ecis\('e). Si \fB\-\-retry\fP est indiqu\('ee, \fBstart\-stop\-daemon\fP recherche si le processus ou les processus se sont bien termin\('es. .TP \fB\-T\fP, \fB\-\-status\fP Contr\(^ole l'existence du processus indiqu\('e et sort avec un code de sortie d\('efini par les actions des scripts d'initialisation de la LSB (\(Fo\ LSB Init Script Actions\ \(Fc \(en\ depuis la version\ 1.16.1). .TP \fB\-H\fP, \fB\-\-help\fP Affiche un message d'aide, puis quitte. .TP \fB\-V\fP, \fB\-\-version\fP Affiche la version du programme, puis quitte. . .SH OPTIONS .SS "Options de correspondance" .TP [\fB\-\-pid\fP] \fIpid\fP V\('erifie l'existence d'un processus avec le \fIpid\fP sp\('ecifi\('e (depuis la version\ 1.17.6). Le \fIpid\fP doit avoir un num\('ero sup\('erieur \(`a\ 0. .TP [\fB\-\-ppid\fP] \fIpid parent\fP V\('erifie l'existence d'un processus avec le pid parent \fIpid\-parent\fP sp\('ecifi\('e (depuis la version\ 1.17.7). Le \fIpid\-parent\fP doit avoir un num\('ero sup\('erieur \(`a\ 0. .TP \fB\-p\fP, \fB\-\-pidfile\fP \fIfichier\-pid\fP Cherche les processus dont les identifiants sont pr\('ecis\('es dans \fIfichier\-pid\fP. .IP Note\ : l'utilisation de l'option de correspondance seule peut provoquer des actions sur des processus non pr\('evus, si l'ancien processus s'est termin\('e sans savoir retir\('e le \fIfichier\-pid\fP. .IP \fBAttention\fP\ : L'utilisation de cette option de correspondance avec un fichier pid accessible \(`a tous en \('ecriture ou seule avec un d\('emon qui \('ecrit le fichier pid comme utilisateur non privil\('egi\('e (pas root) sera refus\('ee avec une erreur (depuis la version\ 1.19.3) car c'est un risque de s\('ecurit\('e, parce que, si le d\('emon se trouve compromis, le contenu du fichier pid ne peut plus \(^etre s\(^ur, et ainsi, un ex\('ecutant privil\('egi\('e (comme un script init ex\('ecut\('e en tant que root) pourrait en fin de compte agir sur n'importe quel processus du syst\(`eme. L'utilisation de \fI/dev/null\fP est exclue de ces v\('erifications. .TP \fB\-x\fP, \fB\-\-exec\fP \fIex\('ecutable\fP Contr\(^ole l'existence de processus qui soient des exemplaires de cet \fIex\('ecutable\fP. Le param\(`etre \fIex\('ecutable\fP doit \(^etre un chemin absolu. Note\ : cela peut ne pas fonctionner avec des scripts interpr\('et\('es, car l'ex\('ecutable sera alors l'interpr\('eteur. Des processus en ex\('ecution au sein d'un environnement ferm\('e d'ex\('ecution (\(Fo\ chroot\ \(Fc) seront \('egalement trouv\('es et il peut donc \(^etre n\('ecessaire d'ajouter d'autres restrictions de correspondance. .TP \fB\-n\fP, \fB\-\-name\fP \fInom\-de\-processus\fP Contr\(^ole l'existence de processus avec \fInom\-de\-processus\fP comme nom. Le \fInom\-de\-processus\fP est en g\('en\('eral le nom du fichier du processus, mais peut avoir \('et\('e modifi\('e par le processus lui\-m\(^eme. Note\ : sur la plupart des syst\(`emes, cette information est r\('ecup\('er\('ee par le nom de communication du noyau, ce qui induit une limite de longueur assez courte (la portabilit\('e impose de ne pas supposer plus de 15\ caract\(`eres). .TP \fB\-u\fP, \fB\-\-user\fP \fIidentifiant\fP|\fIuid\fP Contr\(^ole l'existence de processus dont le propri\('etaire est \fIidentifiant\fP ou \fIuid\fP. Note\ : si cette option est utilis\('ee seule, tous les processus de cet utilisateur seront concern\('es par l'action. . .SS "Options g\('en\('eriques" .TP \fB\-g\fP, \fB\-\-group\fP \fIgroupe\fP|\fIgid\fP Modifie le \fIgroupe\fP ou le \fIgid\fP au d\('ebut du processus. .TP \fB\-s\fP, \fB\-\-signal\fP \fIsignal\fP L'action \fB\-\-stop\fP d\('efinit le signal \(`a envoyer au processus qui doit \(^etre arr\(^et\('e (par d\('efaut\ : TERM). .TP \fB\-R\fP, \fB\-\-retry\fP \fIdur\('ee\fP|\fIaction\-pr\('evue\fP Avec l'action \fB\-\-stop\fP, \fBstart\-stop\-daemon\fP doit v\('erifier que les processus se sont termin\('es. Il le fait pour tous les processus correspondants qui tournent, jusqu'\(`a ce qu'il n'y en ait plus. Quand le processus ne se termine pas, il prend d'autres mesures d\('etermin\('ees par l'\fIaction\-pr\('evue\fP. Si \fIdur\('ee\fP est indiqu\('ee plut\(^ot que \fIaction\-pr\('evue\fP, l'action\-pr\('evue \fIsignal\fP\fB/\fP\fIdur\('ee\fP\fB/KILL/\fP\fIdur\('ee\fP est utilis\('ee, o\(`u \fIsignal\fP est le signal indiqu\('e par \fB\-\-signal\fP. \fIaction\-pr\('evue\fP est une liste d'au moins deux items s\('epar\('es par des barres obliques (\fB/\fP)\ ; chaque item peut \(^etre de la forme \fB\-\fP\fInum\('ero\-signal\fP ou de la forme [\fB\-\fP]\fInom\-signal\fP, ce qui demande d'envoyer ce signal\ ; ou bien de la forme \fIdur\('ee,\fP ce qui demande d'attendre tant de secondes avant de terminer les processus, ou bien de la forme \fBforever\fP, ce qui demande de r\('ep\('eter constamment le reste de action\-pr\('evue, si n\('ecessaire. Quand la fin de l'action\-pr\('evue est atteinte et que \fBforever\fP n'a pas \('et\('e pr\('ecis\('e, \fBstart\-stop\-daemon\fP se termine avec un code d'erreur \('egal \(`a \fB2\fP. Quand une action\-pr\('evue est indiqu\('ee, tout signal donn\('e par \fB\-\-signal\fP est ignor\('e. .TP \fI\-a\fP, \fB\-\-startas\fP \fInom\-de\-chemin\fP Avec l'action \fB\-\-start\fP, lance le processus sp\('ecifi\('e par \fInom\-de\-chemin\fP. Si rien n'est pr\('ecis\('e, c'est par d\('efaut l'argument donn\('e \(`a \fB\-\-exec\fP. .TP \fB\-t\fP, \fB\-\-test\fP Affiche les actions qui seraient entreprises et d\('etermine la bonne valeur de retour, mais ne fait rien. .TP \fB\-o\fP, \fB\-\-oknodo\fP Retourne un code de sortie \('egal \(`a \fB0\fP au lieu de \fB1\fP si rien n'est ou ne sera fait. .TP \fB\-q\fP, \fB\-\-quiet\fP N'affiche pas de messages d'information\ ; affiche seulement les messages d'erreur. .TP \fB\-c\fP, \fB\-\-chuid\fP \fIidentifiant\fP|\fIuid\fP[\fB:\fP\fIgroupe\fP|\fIgid\fP] Change pour cet utilisateur ou \(Fo\ uid\ \(Fc avant de lancer le processus. On peut aussi pr\('eciser un groupe en ajoutant un \fB:\fP, puis le groupe ou un \(Fo\ gid\ \(Fc de la m\(^eme fa\(,con qu'avec la commande \fBchown\fP(1) (\fIutilisateur\fP\fB:\fP\fIgroupe\fP). Lorsqu'un utilisateur est indiqu\('e mais pas de groupe alors le groupe primaire de celui\-ci est utilis\('e. Quand on utilise cette option, on doit veiller \(`a ce que les groupes primaires ainsi que les groupes secondaires existent bien, m\(^eme si l'option \fB\-\-group\fP n'est pas sp\('ecifi\('ee. L'option \fB\-\-group\fP 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\('en\('eriques comme \fBnobody\fP). .TP \fB\-r\fP, \fB\-\-chroot\fP \fIroot\fP Change de r\('epertoire racine pour \fBroot\fP avant de lancer le processus. Remarquez que le \(Fo\ pidfile\ \(Fc est aussi \('ecrit apr\(`es le changement de racine. .TP \fB\-d\fP, \fB\-\-chdir\fP \fIchemin\fP Change de r\('epertoire pour \fIchemin\fP avant de commencer le processus. Cela est fait apr\(`es le changement de r\('epertoire racine si l'option \fB\-r\fP|\fB\-\-chroot\fP est demand\('ee. Si rien n'est demand\('e, \fBstart\-stop\-daemon\fP changera de r\('epertoire pour le r\('epertoire racine avant de commencer le processus. .TP \fB\-b\fP, \fB\-\-background\fP Utilis\('e g\('en\('eralement pour les programmes qui ne \(Fo\ se d\('etachent\ \(Fc pas d'eux\-m\(^emes. Cette option oblige \fBstart\-stop\-daemon\fP \(`a se dupliquer (fork) avant de lancer le processus, et l'oblige \(`a passer en arri\(`ere\-plan. \fBAVERTISSEMENT\ : start\-stop\-daemon\fP ne peut pas v\('erifier le code de sortie quand, pour \fBune raison ou une autre\fP, le processus \('echoue. C'est un exp\('edient 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\('e. .TP \fB\-\-notify\-await\fP Attend que le processus en arri\(`ere\-plan envoie une notification de disponibilit\('e avant de consid\('erer que le service est d\('emarr\('e (depuis la version\ 1.19.3). Cela met en \(oeuvre des \('el\('ements du protocole de disponibilit\('e de systemd, comme sp\('ecifi\('e dans la page de manuel de \fBsd_notify\fP(3). Les variables suivantes sont prises en charge\ : .RS .TP \fBREADY=1\fP Le programme est pr\(^et \(`a offrir son service, il est possible de quitter sans risque. .TP \fBEXTEND_TIMEOUT_USEC=\fP\fInombre\fP Le programme demande l'extension de la dur\('ee de \fInombre\fP microsecondes. Cela fixera la dur\('ee en cours \(`a la valeur sp\('ecifi\('ee. .TP \fBERRNO=\fP \fInombre\fP Le programme s'est termin\('e avec une erreur. Fait la m\(^eme chose et affiche une cha\(^ine conviviale pour la valeur de \fBerrno\fP. .RE . .TP \fB\-\-notify\-timeout\fP\fIdur\('ee\fP D\('efinit une dur\('ee pour l'option \fB\-\-notify\-await\fP (depuis la version\ 1.19.3). Quand la dur\('ee est atteinte, \fBstart\-stop\-daemon\fP s'arr\(^ete avec un code d'erreur et aucune notification de disponibilit\('e n'est attendue. La dur\('ee par d\('efaut est de \fB60\fP\ secondes. .TP \fB\-C\fP, \fB\-\-no\-close\fP Ne fermer aucun descripteur de fichiers en for\(,cant le d\('emon \(`a s'ex\('ecuter en arri\(`ere\-plan (depuis la version\ 1.16.5). Utilis\('e \(`a des fins de d\('ebogage 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 \fB\-\-background\fP. .TP \fB\-N\fP, \fB\-\-nicelevel\fP \fIint\fP Cela modifie la priorit\('e du processus avant qu'il ne soit lanc\('e. .TP \fB\-P\fP, \fB\-\-procsched\fP \fIpolitique\fP\fB:\fP\fIpriorit\('e\fP Modifie la politique du programmateur de processus (\(Fo\ process scheduler policy\ \(Fc) et la priorit\('e du processus avant de le d\('emarrer (depuis la version\ 1.15.0). La priorit\('e peut \(^etre indiqu\('ee de mani\(`ere facultative avec \fB:\fP suivi de la valeur souhait\('ee. La \fIpriorit\('e\fP par d\('efaut est\ 0. Les valeurs de politiques actuellement g\('er\('ees sont \fBother\fP, \fBfifo\fP et \fBrr\fP. .TP \fB\-I\fP, \fB\-\-iosched\fP \fIclasse\fP\fB:\fP\fIpriorit\('e\fP Modifie la classe du programmateur d'entr\('ee/sortie (\(Fo\ IO scheduler\ \(Fc) et la priorit\('e du processus avant de le d\('emarrer (depuis la version\ 1.15.0). La priorit\('e peut \(^etre indiqu\('ee de mani\(`ere facultative avec \fB:\fP suivi de la valeur souhait\('ee. La \fIpriorit\('e\fP par d\('efaut est\ 4, sauf si \fIclasse\fP est \fBidle\fP, auquel cas \fIpriorit\('e\fP sera toujours \('egale \(`a\ 7. Les valeurs de \fIclasse\fP actuellement g\('er\('ees sont \fBidle\fP, \fBbest\-effort\fP et \fBreal\-time\fP. .TP \fB\-k\fP, \fB\-\-umask\fP \fImasque\fP Cela modifie le masque utilisateur du processus avant qu'il ne soit lanc\('e (depuis la version\ 1.13.22). .TP \fB\-m\fP, \fB\-\-make\-pidfile\fP Utilis\('e lors du lancement d'un programme qui ne cr\('ee pas son propre fichier identificateur \(Fo\ pid\ \(Fc. Cette option indique \(`a \fBstart\-stop\-daemon\fP de cr\('eer le fichier r\('ef\('erenc\('e par \fB\-\-pidfile\fP et placer le \(Fo\ pid\ \(Fc dans ce fichier juste avant d'ex\('ecuter le processus. Il faut remarquer que ce fichier ne sera supprim\('e quand le programme s'arr\(^ete que si \fB\-\-remove\-pidfile\fP est utilis\('e. \fBNOTE\ :\fP il se peut que cette caract\('eristique ne marche pas dans tous les cas. Notamment quand le programme qui est ex\('ecut\('e se duplique. \(`A cause de cela, cette option n'est habituellement utile que combin\('ee avec l'option \fB\-\-background\fP. .TP \fB\-\-remove\-pidfile\fP Utilis\('e lors de l'arr\(^et d'un programme qui ne supprime pas lui\-m\(^eme son fichier identificateur \(Fo\ pid\ \(Fc (depuis la version\ 1.17.19). Cette option indique \(`a \fBstart\-stop\-daemon\fP de supprimer le fichier r\('ef\('erenc\('e par \fB\-\-pid\-file\fP apr\(`es l'arr\(^et du processus. .TP \fB\-v\fP, \fB\-\-verbose\fP Affiche des messages prolixes en renseignements. . .SH "CODE DE SORTIE" .TP \fB0\fP L'action demand\('ee a \('et\('e effectu\('ee. Si \fB\-\-oknodo\fP \('etait indiqu\('e, il est \('egalement possible que rien ne se soit pass\('e. Cela peut se produire si \fB\-\-start\fP \('etait indiqu\('e et qu'un processus correspondant \('etait d\('ej\(`a en train de s'ex\('ecuter ou si \fB\-\-stop\fP \('etait indiqu\('e et qu'aucun processus ne correspondait. .TP \fB1\fP Si \fB\-\-oknodo\fP n'\('etait pas indiqu\('e et que rien ne s'est pass\('e. .TP \fB2\fP Si \fB\-\-stop\fP et \fB\-\-retry\fP \('etaient indiqu\('es mais que la fin de la planification a \('et\('e atteinte et que les processus \('etaient toujours en cours d'ex\('ecution. .TP \fB3\fP Toute autre erreur. .PP Lorsque la commande \fB\-\-status\fP est utilis\('ee, les codes d'\('etat suivants sont renvoy\('es\ : .TP \fB0\fP Le programme est en cours d'ex\('ecution. .TP \fB1\fP Le programme n'est pas en cours d'ex\('ecution et le fichier PID existe. .TP \fB3\fP Le programme n'est pas en cours d'ex\('ecution. .TP \fB4\fP Impossible de d\('eterminer l'\('etat du programme. . .SH EXEMPLE D\('emarre le d\('emon \fBfood\fP, \(`a moins qu'il soit d\('ej\(`a en cours d'ex\('ecution (un processus nomm\('e \fBfood\fP, tournant sous le nom d'utilisateur \fBfood\fP, avec un pid dans food.pid)\ : .IP .nf start\-stop\-daemon \-\-start \-\-oknodo \-\-user food \-\-name food \e \-\-pidfile /run/food.pid \-\-startas /usr/sbin/food \e \-\-chuid food \-\- \-\-daemon .fi .PP Envoie le signal \fBSIGTERM\fP \(`a \fBfood\fP et attend durant 5\ secondes son arr\(^et\ : .IP .nf start\-stop\-daemon \-\-stop \-\-oknodo \-\-user food \-\-name food \e \-\-pidfile /run/food.pid \-\-retry 5 .fi .PP D\('emonstration d'un ordonnanceur personnalis\('e pour l'arr\(^et de \fBfood\fP\ : .IP .nf start\-stop\-daemon \-\-stop \-\-oknodo \-\-user food \-\-name food \e \-\-pidfile /run/food.pid \-\-retry=TERM/30/KILL/5 .fi .SH TRADUCTION Ariel VARDI , 2002. Philippe Batailler, 2006. Nicolas Fran\(,cois, 2006. Veuillez signaler toute erreur \(`a .