Não é possível iniciar o ZNC como um serviço

3

Em primeiro lugar, esta é exatamente a mesma pergunta encontrada aqui , mas as soluções dadas não funcionaram na minha situação.

Antecedentes

Estou executando um VOS do CentOS 6 e quero executar um bouncer ZNC nele. Configurei o serviço inicialmente por meio de sudo -u znc znc --makeconf e não tive problemas. Eu consegui iniciá-lo com sucesso.

Problema

No entanto, fui reiniciar o ZNC e imediatamente tive problemas ao tentar reinicializar.

# service znc start
Starting znc: /usr/bin/dirname: extra operand '2>&1.pid'
Try '/usr/bin/dirname --help' for more information.
                                                           [FAILED]

Comecei a procurar no meu script para o ZNC e, como outros apontaram em outras fontes online, parece haver um problema com a colocação de um apóstrofo.

. /etc/rc.d/init.d/functions

exec=/usr/bin/znc
prog=znc
config=/var/lib/znc
runas=znc

lockfile=/var/lock/subsys/$prog

start() {
[ -x $exec ] || exit 5
echo -n $"Starting $prog: "
daemon --user $runas "$exec -d $config >/dev/null 2>&1"
# daemon --user $runas --check $exec "$exec -d $config >/dev/null 2>&1"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}

tentativa de correção

A linha daemon no método start() parece ser o problema. Tentei modificá-lo para o seguinte:

daemon --user $runas "$exec" -d $config >/dev/null 2>&1

No entanto, modificá-lo para isso corrige o erro, mas quando vou iniciar o ZNC com service znc start , acabo de obter uma saída em branco - nem [OK] ou [FAILED] são fornecidos. O serviço, em última análise, não inicia e isso é verificado por service znc status .

Estou confuso sobre o assunto e não sei como proceder para descobrir a causa do problema. Mais conselhos para solução de problemas são bem-vindos!

    
por Justin W. Flory 30.10.2015 / 20:12

1 resposta

1

Eu resolvi isso editando a linha ofensiva em /etc/rc.d/init.d/znc de:

daemon --user $runas "$exec -d $config >/dev/null 2>&1"

para o seguinte:

daemon --user $runas "$exec -d $config >/dev/null"

(isto é, remover o redirecionamento stderr, 2 > & 1)

Isso agora me dá a confirmação de que o serviço começou OK ou falhou:

root@localhost [~]# service znc restart
Stopping znc:                                              [FAILED]
Starting znc:                                              [  OK  ]

Além disso, pelo menos na minha instalação do yum (CentOS 6.7), eu também tive que modificar essa linha no mesmo arquivo para apontar para o diretório de configuração correto (linha 12):

config=/var/lib/znc

para:

config=/var/lib/znc/.znc

Antes disso, o znc falhava ao iniciar porque não conseguia encontrar o arquivo de configuração que eu havia gerado anteriormente com sudo -H -u znc znc --makeconf .

    
por 17.05.2016 / 15:31