まず、これは発見されたのと同じ問題ですここしかし、私の場合、与えられた解決策は機能しません。
背景
私は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
。