安装runit
在 Debian 7.4 中的 Vagrant 中。
我的运行脚本正在运行,但是当我创建 service/pants/log/ 目录时,我开始收到以下错误:unable to open supervise/ok
. 我的服务继续运行,但没有任何记录。
我尝试了两种不同的服务,但都有同样的问题。
我尝试了各种不同的服务/裤子/日志/运行脚本(主要使用 svlogd),我尝试更改所有内容的权限(a+rwx),存储日志的目录存在并且具有相同的权限。
如果我直接从命令行运行 svlogd,它会按预期工作。
下面的 bash 日志显示了当我重命名/etc/service/pants/_log
为/etc/service/pants/log
并再次返回时发生的情况/etc/service/pants/_log
。
root@vwb-debian-wheezy:/etc/service# sv s pants/
run: pants/: (pid 29260) 44931s
root@vwb-debian-wheezy:/etc/service# mv pants/{_,}log/
root@vwb-debian-wheezy:/etc/service# sv s pants/
run: pants/: (pid 29260) 44963swarning: pants/: unable to open supervise/ok: file does not exist
; run: log: (pid 29260) 44963s
root@vwb-debian-wheezy:/etc/service# cat pants/log/run
#!/bin/sh
exec svlogd -ttt /var/log/service/pants/
root@vwb-debian-wheezy:/etc/service# ll pants/
total 12
drwxrwxrwx 2 root root 4096 Jul 3 07:00 log
-rwxrwxrwx 1 root root 442 Jul 3 06:58 run
drwxrwxrwx 2 root root 4096 Jul 2 18:59 supervise
root@vwb-debian-wheezy:/etc/service# ll /var/log/service/
total 8
drwxrwxrwx 2 root root 4096 Jul 2 16:55 pants
root@vwb-debian-wheezy:/etc/service# mv pants/{,_}log/
root@vwb-debian-wheezy:/etc/service# sv s pants/
run: pants/: (pid 29260) 45105s
在not中创建
run
文件。/etc/sv/pants/
/etc/service/pants/
然后应该创建一个符号链接
/etc/service
来/etc/sv/pants
激活服务。虽然直接
/etc/service
为服务创建文件,但在使用日志记录时似乎也会导致问题。可以通过删除 中的符号链接来停用服务
/etc/service/
。对于 Debian 安装,有两个目录:
/etc/service
和/service
. 为了使您的服务得到有效控制,它们应该或多或少是彼此的镜像。在您的示例中,对于 servicepants
,应该有一个 symlink/etc/service/pants
和一个 symlink/service/pants
,每个都应该指向/etc/sv/pants
。您可以“作弊”并自行/service
创建符号链接/etc/service
以获得相同的效果,但我不确定该更改的全部影响。如果您正在运行 ubuntu 18.04 或更高版本并收到以下错误
或者如果 runsvdir 没有出现在“grep”输出中,那么请运行以下命令来运行runit-systemd包
对于 ubuntu 18.04,以上所有指定的答案都对我不起作用。然后我从另一个 askubuntu问题中找到了这个解决方案
我希望这有帮助