| start-stop-daemon(8) | dpkg suite | start-stop-daemon(8) |
NOME¶
start-stop-daemon - inicia e pára programas daemon do sistema
RESUMO¶
start-stop-daemon [option...] command
DESCRIÇÃO¶
start-stop-daemon é usado para a criação e término de processos de nível-de-sistema. Usando uma destas opções de correspondência, o start-stop-daemon pode ser configurado para procurar instâncias existentes de processos a correr.
Nota: A menos que --pid ou --pidfile sejam especificados, start-stop-daemon comporta-se de modo semelhante a killall(1). start-stop-daemon irá sondar a tabela de processos em busca de qualquer processo que coincida com o nome de processo, pid parente, uid, e/u gid (se especificado). Quaisquer processos correspondentes irá prevenir um --start de iniciar o daemon. A todos os processos correspondentes será enviado o sinal TERM (ou aquele especificado via --signal ou --retry) se for especificado --stop.Para daemons que têm filhos de vida-longa que precisam sobreviver a um --stop, você tem de especificar um pidfile.
COMANDOS¶
- -S, --start [--] arguments
- Verifica a existência de um processo especificado. Se tal processo existir, o start-stop-daemon não faz nada, e termina com um estado de erro 1 (0 se --oknodo for especificado). Se tal processo não existir, inicia uma instância, usando ou o executável especificado por --exec ou, se especificado, por --startas. Quaisquer argumentos dados após -- na linha de comandos são passados sem modificação ao programa que está a ser iniciado.
- -K, --stop
- Verifica a existência de um processo especificado. Se tal processo existir, start-stop-daemon envia o sinal especificado por --signal, e termina com estado de erro 0. Se tal processo não existir, start-stop-daemon termina com estado de erro 1 (0 se --oknodo for especificado). Se for especificado --retry então o start-stop-daemon irá verificar se os processo(s) terminaram.
- -T, --status
- Check for the existence of a specified process, and returns an exit status
code, according to the LSB Init Script Actions
Supported since version 1.16.1.
- --pidof
- Check for the existence of specified processes, print their PIDs, and
returns an exist status just like --status.
Supported since version 1.23.8.
- -H, --help
- Mostra informação de utilização e termina.
- -V, --version
- Mostra a versão do programa e termina.
OPÇÕES¶
Opções de correspondência¶
- --pid pid
- Check for a process with the specified pid. The pid must be
a number greater than 0.
Supported since version 1.17.6.
- --ppid ppid
- Check for a process with the specified parent pid ppid. The
ppid must be a number greater than 0.
Supported since version 1.17.7.
- -p, --pidfile pidfile
- Verifica se um processo criou o ficheiro pidfile.
Nota: Usar esta opção de correspondência sozinha pode causar que se actue em processos intencionalmente, se o processo antigo terminou sem ser capaz de remover o seu pidfile.
Aviso: Usar esta opção de correspondência com um pidfile gravável mundialmente ou usa-la sozinha com um daemon que escreve o pidfile como um utilizador sem privilégios (não-root) irá ser recusada com um erro (desde versão 1.19.3) pois isto é um risco de segurança, porque ou o utilizador consegue escrever nele, ou se o daemon ficar comprometido, não se pode confiar no conteúdo do pidfile, e depois um programa privilegiado (tal como um script de init corrido como root) acabaria a actuar em qualquer processo do sistema. Usar /dev/null está isento destas verificações.
- -x, --exec executable
- Verifica por processos que são instâncias deste
executable. O argumento executable deve ser um nome de
caminho absoluto.
Nota: Isto pode não funcionar como pretendido com com scripts de interpretação, pois o executável irá apontar para o interpretador. Tendo em conta que processos que correm dentro de uma chroot também irão corresponder, então poderão ser necessárias outras restrições de correspondência.
- -n, --name process-name
- Verifica por processos com o nome process-name. O
process-name é geralmente o nome de ficheiro do processo,
mas pode ter sido modificado pelo próprio processo.
Nota: Na maioria dos sistemas esta informação é obtida a partir do nome de comunicação do processo a partir do kernel, o que tem tendência a ter um limite de comprimento relativamente curto (assumir mais de 15 caracteres é não-portável).
- -u, --user username|uid
- Verifica por processos cujo dono é o utilizador especificado por
username ou uid.
Nota: usar só esta opção de correspondência irá causar com que seja actuado em todos os processos que correspondem ao utilizador.
Opções genéricas¶
- -g, --group group|gid
- Altera para grupo ou gid quando inicia o processo.
- -s, --signal signal
- Com --stop, especifica o sinal a enviar aos processos a serem parados (predefinição TERM).
- -R, --retry timeout|schedule
- Com --stop, especifica que start-stop-daemon deve verificar
se o(s) processo(s) terminam mesmo. Irá verificar repetidamente se
qualquer processo correspondente está a correr, até que
nenhum esteja. Se os processos não terminarem irá
então tomar mais acções como determinado pelo
agendamento.
Se for especificado timeout em vez de schedule, então agenda signal/timeout/KILL/timeout é usada, onde signal é o sinal especificado com --signal.
schedule é uma lista de pelo menos dois itens separados por barras (/); cada item pode ser -signal-number ou [-]signal-name, o que significa enviar esse sinal, ou timeout, o que significa esperar esses tantos segundos para que os processos terminem, ou forever, o que significa repetir o resto da agenda para sempre se necessário.
Se o fim da agenda for atingido e não foi especificado forever, então start-stop-daemon termina com o estado de erro 2. Se for especificada uma agenda então qualquer sinal especificado com --signal é ignorado.
- -a, --startas pathname
- Com --start, inicia o processo especificado por nome-de-caminho. Se não especificado, usa por predefinição o argumento dado a --exec.
- -t, --test
- Escreve as acções que seriam tomadas e define valores de retorno apropriados, mas não toma nenhuma acção.
- -o, --oknodo
- Retorna o estado de saída 0 em vez de 1 se nenhuma acção foi (será) tomada.
- -q, --quiet
- Não escreve mensagens informativas, apenas mostra mensagens de erro.
- -c, --chuid username|uid[:group|gid]
- Muda para este nome-utilizador/uid antes de arrancar o processo. Você também pode especifica um grupo ao anexar :, e depois o grupo ou gid do mesmo modo que faria com o comando chown(1) (user:group). Se for especificado um utilizador sem um grupo, é usado o GID primários para esse utilizador. Quando usa esta opção você tem de compreender que os grupos primário e suplementar são também definidos, mesmo que a opção --group não seja especificada. A opção --group é apenas para grupos em que o utilizador não é normalmente um membro dele (tal como adicionar sociedade de grupo por-processo para utilizadores genéricos tipo nobody).
- -r, --chroot root
- Change directory and chroot to root before starting the process. Note that the pidfile is also written after the chroot.
- -d, --chdir path
- Muda directório para caminho antes de iniciar o processo. Isto é feito depois de chroot se a opção -r|--chroot estiver definida. Quando não especificado, o start-stop-daemon irá mudar o directório para o directório raiz antes de iniciar o processo.
- -b, --background
- Tipicamente usado com programas que não se desanexam deles
próprios. Esta opção irá forçar o
start-stop-daemon a bifurcar antes de iniciar o processo, e a
força-lo para os bastidores.
Nota: O estado de saída de uma falha inesperada tardia durante o processo de inicialização não pode ser verificado, a menos que seja usada a opção --notify-await. Destina-se a ser usada por programas que ou não faz sentido serem deamonizados por si próprios, ou onde não é viável ou desejável adicionar o código de deamonização e notificação para eles fazerem isto por si próprios.
- --notify-await
- Wait for the background process to send a readiness notification before
considering the service started This option can only be used with
--background.
Isto implementa partes do protocolo de prontidão do systemd, como especificado no manual sd_notify(3). As seguintes variáveis são suportadas:
- READY=1
- O programa está pronto a dar serviço, portanto é seguro sair-mos.
- EXTEND_TIMEOUT_USEC=number
- O programa pede para estender o limite de tempo em by number milissegundos. Isto irá reiniciar o tempo limite actual para o valor especificado.
- ERRNO=number
- O programa está a terminar com um erro. Faça o mesmo e escreva a string amiga-do-utilizador para o valor errno.
Supported since version 1.19.3.
- --notify-timeout timeout
- Set a timeout for the --notify-await option. When the timeout is
reached, start-stop-daemon will exit with an error code, and no
readiness notification will be awaited. The default is 60 seconds.
Supported since version 1.19.3.
- -C, --no-close
- Do not close any file descriptor when forcing the daemon into the
background. Used for debugging purposes to see the process output, or to
redirect file descriptors to log the process output. Only relevant when
using --background.
Supported since version 1.16.5.
- -O, --output pathname
- Redirect stdout and stderr to pathname when forcing
the daemon into the background. Only relevant when using
--background.
Supported since version 1.20.6.
- -N, --nicelevel int
- Isto altera a prioridade do processo antes de o iniciar.
- -P, --procsched policy:priority
- This alters the process scheduler policy and priority of the process
before starting it. The priority can be optionally specified by appending
a : followed by the value. The default priority is 0. The
currently supported policy values are other, fifo and
rr.
Esta opção pode não fazer anda em alguns sistemas, onde o agendamento de processos POSIX não é suportado.
Supported since version 1.15.0.
- -I, --iosched class:priority
- This alters the IO scheduler class and priority of the process before
starting it. The priority can be optionally specified by appending a
: followed by the value. The default priority is 4, unless
class is idle, then priority will always be 7. The
currently supported values for class are idle,
best-effort and real-time.
Esta opção pode não fazer anda em alguns sistemas, onde o agendamento de processos Linux IO não é suportado.
Supported since version 1.15.0.
- -k, --umask mask
- This sets the umask of the process before starting it.
Supported since version 1.13.22.
- -m, --make-pidfile
- Usado quando se inicia um programa que não cria o seu
próprio ficheiro pid. Esta opção irá fazer o
start-stop-daemon criar o ficheiro referenciado com
--pidfile e colocar o pid nele mesmo antes de executar o processo.
Nota, o ficheiro só será removido quando se pára o
programa se for usado --remove-pidfile.
Nota: Esta funcionalidade pode não funcionar em todos os casos. Mais notavelmente quando o programa a ser executar bifurca do seu processo principal. Devido a isto, é geralmente apenas útil quando combinado com a opção --background.
- --remove-pidfile
- Used when stopping a program that does not remove its own pid file. This
option will make start-stop-daemon remove the file referenced with
--pidfile after terminating the process.
Supported since version 1.17.19.
- -v, --verbose
- Escreve mensagens de informação detalhadas.
ESTADO À SAÍDA¶
- 0
- A acção requerida foi executada. Se --oknodo foi especificado, é também possível que nada tenha de ser feito. Isto pode acontecer quando --start foi especificado e um processo correspondente já estava a correr, ou quando --stop foi especificado e não há nenhum processo correspondente.
- 1
- Se --oknodo não foi especificado e nada foi feito.
- 2
- Se --stop e --retry foram especificados, mas foi alcançado o fim do agendamento e os processos ainda estavam a correr.
- 3
- Qualquer outro erro.
When using the --status or --pidof commands, the following status codes are returned:
- 0
- Programa está em execução.
- 1
- Programa não está em execução e o ficheiro pid existe.
- 3
- Programa não está em execução.
- 4
- Incapaz de determinar o estado do programa.
EXEMPLO¶
Inicia o daemon food, a menos que um já esteja a correr (um processo chamado food, a correr como utilizador food, com pid em food.pid):
start-stop-daemon --start --oknodo --user food --name food \ --pidfile /run/food.pid --startas /usr/sbin/food \ --chuid food -- --daemon
Envia SIGTERM para food e espera até 5 segundos para que pare:
start-stop-daemon --stop --oknodo --user food --name food \ --pidfile /run/food.pid --retry 5
Demonstração dum agendamento personalizado para parar o food:
start-stop-daemon --stop --oknodo --user food --name food \ --pidfile /run/food.pid --retry=TERM/30/KILL/5
TRADUÇÃO¶
Américo Monteiro
Se encontrar algum erro na tradução deste documento, por favor comunique para Américo Monteiro <a_monteiro@gmx.com>.
| 2026-09-09 | 1.23.11 |