start-stop-daemon(8)

NOME
start-stop-daemon - inicia e pára programas daemon do sistema

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

Note: Unless --pid or --pidfile are specified, start-stop-daemon behaves similar to killall(1). start-stop-daemon will scan the process table looking for any processes which match the process name, parent pid, uid, and/or gid (if specified). Any matching process will prevent --start from starting the daemon. All matching processes will be sent the TERM signal (or the one specified via --signal or --retry) if --stop is specified. For daemons which have long-lived children which need to live through a --stop, you must specify a 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
    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).

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

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

-p, --pidfile pidfile
    Verifica se um processo criou o ficheiro pidfile.

    Note: Using this matching option alone might cause unintended processes to be acted on, if the old process terminated without being able to remove the pidfile.

    Warning: Using this match option with a world-writable pidfile or using it alone with a daemon that writes the pidfile as an unprivileged (non-root) user will be refused with an error (since version 1.19.3) as this is a security risk, because either any user can write to it, or if the daemon gets compromised, the contents of the pidfile cannot be trusted, and then a privileged runner (such as an init script executed as root) would end up acting on any system process. Using /dev/null is exempt from these checks.

-x, --exec executable
    Verifica por processos que são instâncias deste executable. O argumento executable deve ser um nome de caminho absoluto.

    Note: This might not work as intended with interpreted scripts, as the executable will point to the interpreter. Take into account processes running from inside a chroot will also be matched, so other match restrictions might be needed.

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

    Note: On most systems this information is retrieved from the process comm name from the kernel, which tends to have a relatively short length limit (assuming more than 15 characters is non-portable).

-u, --user username|uid
    Verifica por processos cujo dono é o utilizador especificado por username ou uid.

    Note: Using this matching option alone will cause all processes matching the user to be acted on.

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

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

    Warning: start-stop-daemon cannot check the exit status if the process fails to execute for any reason. This is a last resort, and is only meant for programs that either make no sense forking on their own, or where it's not feasible to add the code for them to do this themselves.

--notify-await
    Wait for the background process to send a readiness notification before considering the service started (since version 1.19.3). This implements parts of the systemd readiness protocol, as specified in the sd_notify(3) manual page. The following variables are supported:

    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.

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

-C, --no-close
    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.

-O, --output pathname
    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.

-N, --nicelevel int
    Isto altera a prioridade do processo antes de o iniciar.

-P, --procsched policy:priority
    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.

-I, --iosched class:priority
    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.

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

    Note: This feature may not work in all cases. Most notably when the program being executed forks from its main process. Because of this, it is usually only useful when combined with the --background option.

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

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

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