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.
Verifica a existência de um processo especificado, e devolve um código de estado de saída, de acordo com as Acções do Script Init do LSB (desde versão 1.16.1).
Mostra informação de utilização e termina.
Mostra a versão do programa e termina.

OPÇÕES

Opções de correspondência

Verifica por um processo com o pid especificado (desde versão 1.17.6). O pid tem de ser um número maior que 0.
Verifica por um processo com o ppid (pid pai) especificado (desde versão 1.17.7). O ppid tem de ser um número maior que 0.
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).
Muda directório e chroot para root antes de iniciar o processo. Por favor note que o pidfile é também escrito após o 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.

Note: The exit status from a late unexpected failure during the process initialization cannot be checked, unless the --notify-await option is used. It is intended for use with programs that either make no sense daemonizing on their own, or where it is not feasible or desired to add the daemonizing and notification code for them to do this themselves.

Wait for the background process to send a readiness notification before considering the service started (since version 1.19.3). This option can only be used with --background.

This implements parts of the systemd readiness protocol, as specified in the sd_notify(3) manual page. The following variables are supported:

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.
Define o tempo limite para a opção --notify-await (desde versão 1.19.3). Quando o tempo limite é atingido, o start-stop-daemon irá terminar com um código de erro, e não é esperada nenhuma notificação de prontidão. A predefinição é 60 segundos.
Não fecha nenhum descritor de ficheiro quando força o daemon para os bastidores (desde versão 1.16.5). Usado para objectivos de depuração para ver o resultado dos processos, ou para redirecionar os descritores de ficheiros para registar o resultado dos processos. Apenas relevante quando se usa --background.
Redireciona stdout e stderr para pathname quando força o daemon a funcionar em segundo plano (desde versão 1.20.6). Apenas relevante quando se usa --background.
Isto altera a prioridade do processo antes de o iniciar.
Isto altera a política de agendamento de processos e a prioridade dos processos antes de os iniciar (desde versão 1.15.0). A prioridade pode ser opcionalmente especificada ao anexar um : seguido de um valor. A predefinição de priority é 0. Os valores de política actualmente suportados são other, fifo e rr.

Esta opção pode não fazer anda em alguns sistemas, onde o agendamento de processos POSIX não é suportado.

Isto altera a classe de agendamento IO e a prioridade dos processos antes de os iniciar (desde versão 1.15.0). A prioridade pode ser opcionalmente especificada ao anexar um : seguido de um valor. A predefinição de priority é 4, a menos que class seja idle, então priority será sempre 7. Os valores actualmente suportados para class são idle, best-effort e real-time.

Esta opção pode não fazer anda em alguns sistemas, onde o agendamento de processos Linux IO não é suportado.

Isto define o umask do processo antes de o iniciar (desde a versão 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.

Usado para parar um programa que não remove o seu próprio ficheiro pid (desde versão 1.17.19). Esta opção irá fazer o start-stop-daemon remover o ficheiro referenciado com --pidfile após terminar o processo.
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.

Quando se usa o comando --status, são devolvidos os seguintes códigos de estado:

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-01-23 1.23.5