ZNCをサービスとして起動できません。

ZNCをサービスとして起動できません。

まず、これは発見されたのと同じ問題ですここしかし、私の場合、与えられた解決策は機能しません。

背景

私はCentOS 6 VPSを実行しており、ここでZNC Bodyguardを実行したいと思います。最初にサービスを設定しましたが、sudo -u znc znc --makeconf問題はありませんでした。正常に起動しました。

質問

ただし、ZNCを再起動して再起動しようとするとすぐに問題が発生しました。

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

ZNCの起動スクリプトを見始めましたが、他の人がオンラインの他のソースから指摘したように、アポストロフィの配置に問題があるようです。

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

修正しよう

daemonメソッドの行がstart()問題のようです。次のように修正してみました。

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

ただし、これを修正するとエラーが解決されますが、ZNCを起動すると、与えられたものでも与えられたものでもservice znc startなく、空の出力のみが得られます。サービスが開始されませんでした。これはで確認されました。[OK][FAILED]service znc status

この問題について混乱しているので、問題の原因を見つけるためにどのように進むべきかわかりません。追加のトラブルシューティングアドバイスをいただきありがとうございます!

答え1

次の問題行を編集して問題を解決しました/etc/rc.d/init.d/znc

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

次に:

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

(つまり、標準エラーリダイレクトの削除、2>&1)

これで、サービスが正常に開始されたか失敗したかを確認できます。

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

また、少なくともyumインストール(CentOS 6.7)では、正しい構成ディレクトリ(行12)を指すように同じファイルでこの行を変更する必要がありました。

config=/var/lib/znc

到着する:

config=/var/lib/znc/.znc

以前は znc がsudo -H -u znc znc --makeconf

関連情報