ZNCサービスを開始できません

ZNCサービスを開始できません

次のコマンドを使用してZNCを起動しようとしています。

service znc start

このエラーが発生します。

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

init.dスクリプトは次のとおりです。

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: "
# if not running, start it up here, usually something like "daemon $exec"
daemon --user $runas "$exec -d $config >/dev/null 2>&1"
# If you're reckless with your system, comment the line above and
# uncomment this one below... I just don't get it why
#daemon "$exec -r -d $config >/dev/null 2>&1"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}

この問題の原因が何であるかを知っている人がいます。

セントースを書いています。

ベストアンサー1

質問のコードに基づいてサンプル初期化スクリプトを作成し、二重引用符を最後から中央に移動して1行を変更する必要があると判断しました。

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

daemon()の関数は、/etc/init.d/functions引数ではなく最初の引数を調べて、プログラムパスをデフォルト名に戻し、それを使用してPIDロックファイルを派生させます。文字列全体を(不正確に)引用することによって、PIDファイルは2>&1.pidエラーが示すものと誤って識別されます。

ZNCプログラムがそれ自体を保護せずにバックグラウンドに分岐している場合、ここに示されているコード行はまだ無期限に中断されます。 ZNCがないため、この部分をテストすることはできませんが、CentOSデーモンユーティリティがバックグラウンドジョブのオプションを提供していないことを考えると、この基本的な要件はZNC自体で解決されたことを願っています。

おすすめ記事