
まず、これはまさに同じ質問ですここしかし、与えられた解決策は私の状況では機能しませんでした。
背景
CentOS 6 VPS を実行しており、その上で ZNC バウンサーを実行したいと考えています。最初にサービスを構成しましたが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 の initscript を調べ始めましたが、オンラインの他のソースで他の人が指摘していたように、アポストロフィの配置に問題があるようです。
. /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"
(つまり、stderr リダイレクトを削除します、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
。