无法将 ZNC 作为服务启动

无法将 ZNC 作为服务启动

首先,这与发现的问题完全相同这里,但给定的解决方案在我的情况下不起作用。

背景

我正在运行 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 的启动脚本,就像其他人在网上其他来源中指出的那样,撇号的放置似乎存在问题。

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

相关内容