Scroll to navigation

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

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

Check for the existence of specified processes, print their PIDs, and returns an exist status just like --status.

Supported since version 1.23.8.

Mostra informação de utilização e termina.
Mostra a versão do programa e termina.

OPÇÕES

Opções de correspondência

Check for a process with the specified pid. The pid must be a number greater than 0.

Supported since version 1.17.6.

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.

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.

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.

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

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

Altera para grupo ou gid quando inicia o processo.
Com --stop, especifica o sinal a enviar aos processos a serem parados (predefinição TERM).
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.

Com --start, inicia o processo especificado por nome-de-caminho. Se não especificado, usa por predefinição o argumento dado a --exec.
Escreve as acções que seriam tomadas e define valores de retorno apropriados, mas não toma nenhuma acção.
Retorna o estado de saída 0 em vez de 1 se nenhuma acção foi (será) tomada.
Não escreve mensagens informativas, apenas mostra mensagens de erro.
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).
Change directory and chroot to root before starting the process. Note that the pidfile is also written after the chroot.
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.
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.

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:

O programa está pronto a dar serviço, portanto é seguro sair-mos.
O programa pede para estender o limite de tempo em by number milissegundos. Isto irá reiniciar o tempo limite actual para o valor especificado.
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.

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.

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.

Redirect stdout and stderr to pathname when forcing the daemon into the background. Only relevant when using --background.

Supported since version 1.20.6.

Isto altera a prioridade do processo antes de o iniciar.
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.

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.

This sets the umask of the process before starting it.

Supported since version 1.13.22.

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.

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.

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