Directory-Structure

伺服器套接字定位、啟動和監控

  • December 28, 2013

我正在一個共享開發桌面上編寫一個伺服器,該桌面月光作為伺服器。

這是我第一次嘗試在共享機器上為其他人編寫 linux 伺服器。我想符合 unix 標準並使其盡可能專業。

websocket伺服器應該放在什麼目錄下?我在想/var,但它root是,所以我不知道如何準確地導航。

應該如何管理執行?換句話說,是否應該創建一個有權執行伺服器的新組,以防它崩潰或需要重新啟動?如果是這樣,怎麼做?

我不確定您所說的“websocket”是什麼意思。如果這是一個 Web 伺服器,它會在 TCP 上進行偵聽,並且沒有理由還必須通過 unix 套接字進行偵聽。

假設您確實想使用 unix 套接字,如果您的伺服器是由 root 啟動的,您可以在 中創建一個子目錄,在/var/run其中授予您的守護程序寫入權限,並讓您的守護程序以可預測的名稱(例如 )在那裡創建它的套接字/var/run/gracchusd/sock。如果您的伺服器不是由 root 啟動的,您可以在 下創建套接字/tmp,其名稱包含隨機生成的部分(例如/tmp/gracchusd-nyBBCxs9.sock)。一般來說,文件系統層次標準會告訴您關於將文件放在哪裡的主要規則(儘管要注意它有點過時,特別是它沒有提到/run現在常見但尚未普遍使用的規則)。

要啟動和停止您的服務,請創建服務啟動腳本或描述文件。您(或將您的伺服器移植到不同發行版的人)將需要為每個init 系統創建一個,因為它們的工作方式不同。一些 init 系統帶有自己的監控機制,或者您可以使用單獨的監控守護程序

除非您的伺服器需要以 root 身份執行,否則最好以專用使用者和組的身份執行它。配置文件應該由 root 擁有而不是組可寫的,這樣即使守護程序被破壞,攻擊者也無法更改配置。如果守護程序需要讀取機密文件,它們可以由 root 或其他使用者擁有,並且由守護程序組讀取。

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