Openbsd

如何複製守護程序?

  • July 23, 2016

我想執行兩個 dnscrypt 客戶端代理實例,但我無法讓它們在啟動時自動啟動。這是我嘗試過的:

rc.local中,這是第一個:

/usr/local/sbin/dnscrypt-proxy -a 127.0.0.1:40 -u _dnscrypt-proxy -d -l /dev/null -R dnscrypt.eu-dk

第二個:

/usr/local/sbin/dnscrypt-proxy2 -a 127.0.0.1:41 -u _dnscrypt-proxy2 -d -l /dev/null -R dnscrypt.org-fr

cd/usr/local/sbin了一個cp dnscrypt-proxy dnscrypt-proxy2然後當我重新啟動時我會得到[ERROR] Unknown User : [dnscrypt-proxy2].

然後我搜尋並看到了這個問題,然後我手動編輯/etc/passwd並添加了一個新使用者,仔細複製了預設_dnscrypt-proxy使用者並更改了 id,因為現在它有這兩個條目:

_dnscrypt-proxy:*688:688:dnscrypt-proxy user:/var/empty:/sbin/nologin 
_dnscrypt-proxy2:*689:689:dnscrypt-proxy2 user:/var/empty:/sbin/nologin`

當我重新啟動時,未知使用者錯誤仍然存在。快速瀏覽ls文件夾顯示我確實複製了該文件夾。Ps aux顯示守護程序尚未啟動。Google搜尋對我沒有幫助,所以我求助於這裡的 Linux 專家。我的作業系統是 OpenBSD 5.7。

首先,這是對未知使用者錯誤為何持續存在的問題的具體答案:錯誤在於您創建使用者的方式。有更多的文件需要修復,而不僅僅是/etc/passwd.

正確創建使用者的最簡單方法是簡單地刪除該行/etc/passwd,然後執行adduser -noconfig -shell -/sbin/nologin。(並且當您編輯 /etc/passwd 時,請使用vipw而不是僅使用vi /etc/passwd- 請參閱手冊頁以獲取解釋!)

其次,您真的不需要創建第二個使用者。您可以執行同一程序兩次,而無需該程序的副本或第二個使用者來執行它。要使用相同的使用者和二進製文件執行第二個守護程序,但設置不同,您需要做的事情很簡單:

  • 將守護程序的初始化腳本複製到另一個名稱。(你已經這樣做了。)
  • 編輯新的初始化腳本。保持二進製文件的相同路徑和相同的使用者名。更改您想要更改的選項!

Voilà - 你準備好執行了!

引用自:https://unix.stackexchange.com/questions/216381