qual é a maneira canônica de iniciar um daemon no script rhel / centos-6 init?

11

Encontrei muita documentação boa para o start-stop-daemon do ubuntu e há uma página de manual para um binário daemon.

Mas pelo que posso dizer, a maneira canônica de iniciar um daemon em um script rhel / centos é fonte e, em /etc/init.d/functionsseguida, use a daemon()função Mas não consigo encontrar bons exemplos ou documentação.

Qual é a maneira canônica de iniciar um daemon no script rhel / centos-6 init?

minha primeira tentativa foi:

#!/bin/bash
source /etc/init.d/functions
daemon --user USER nohup /path/to/your/binary arg1 arg2 >/dev/null 2>&1 &
Trevor Boyd Smith
fonte
@Christopher Atualizei a pergunta (não systemd) #
Trevor Boyd Smith

Respostas:

10

A documentação e o exemplo que você está procurando estão localizados no /usr/share/doc/initscripts-*/sysvinitfilesCentOS / RHEL. Aqui está a documentação da daemonfunção especificamente:

daemon [--check] [--user] [+/- nicelevel] programa [argumentos] [&]

    Starts a daemon, if it is not already running.  Does
    other useful things like keeping the daemon from dumping
    core if it terminates unexpectedly.

    --check <name>:
       Check that <name> is running, as opposed to simply the
       first argument passed to daemon().
    --user <username>:
       Run command as user <username>

Com o CentOS / RHEL 6, você também tem a opção de usar um arquivo de tarefa inicial, em vez de escrever um script sysv init.

jordanm
fonte
1
Era exatamente isso que eu procurava: 1. documentação real 2. orientação sobre se devo adicionar &ou não no final da linha (existem outros comandos daemon similares que fazem a &operação em segundo plano para você)
Trevor Boyd Smith