Openbsd
如何複製守護程序?
我想執行兩個 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à - 你準備好執行了!