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

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

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

Fundo

Estou executando um CentOS 6 VPS e quero executar um segurança ZNC nele. Configurei o serviço inicialmente sudo -u znc znc --makeconfe não tive problemas. Consegui iniciá-lo com sucesso.

Problema

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

# 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 ZNC em meu script inicial e, como outros apontaram em outras fontes on-line, 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 daemonlinha no start()método parece ser o problema. Eu 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, recebo apenas uma saída em branco - nenhum [OK]ou [FAILED]é fornecido. Em última análise, o serviço não inicia e isso é verificado por service znc status.

Estou confuso sobre o problema e não sei como proceder para descobrir a causa do problema. Agradecemos mais conselhos sobre solução de problemas!

Responder1

Resolvi isso editando a linha incorreta /etc/rc.d/init.d/zncde:

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

para o seguinte:

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

(ou seja, remova o redirecionamento stderr, 2>&1)

Isso agora me dá a confirmação de que o serviço foi iniciado corretamente 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), também tive que modificar esta 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 o sudo -H -u znc znc --makeconf.

informação relacionada