Debian

嘗試使用 runit 登錄只會返回“無法打開監督/確定”

  • February 14, 2019

安裝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. 為了使您的服務得到有效控制,它們應該或多或少是彼此的鏡像。在您的範例中,對於 service pants,應該有一個 symlink/etc/service/pants和一個 symlink /service/pants,每個都應該指向/etc/sv/pants。您可以“作弊”並自行/service創建符號連結/etc/service以獲得相同的效果,但我不確定該更改的全部影響。

引用自:https://serverfault.com/questions/609780