嘗試使用 runit 登錄只會返回“無法打開監督/確定”
安裝
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
啟動服務。ln -s /etc/sv/pants /etc/service/
雖然直接
/etc/service
為服務創建文件,但在使用日誌記錄時似乎也會導致問題。可以通過刪除 中的符號連結來停用服務
/etc/service/
。
對於 Debian 安裝,有兩個目錄:
/etc/service
和/service
. 為了使您的服務得到有效控制,它們應該或多或少是彼此的鏡像。在您的範例中,對於 servicepants
,應該有一個 symlink/etc/service/pants
和一個 symlink/service/pants
,每個都應該指向/etc/sv/pants
。您可以“作弊”並自行/service
創建符號連結/etc/service
以獲得相同的效果,但我不確定該更改的全部影響。