在哪裡放置使用者建立的 systemd 單元檔案

在哪裡放置使用者建立的 systemd 單元檔案

nginx.service我應該在 Ubuntu 16.04 上將 Nginx 或類似檔案的 systemd 檔案放在哪裡?

答案1

推薦的地方是/etc/systemd/system/nginx.service

然後發出命令:

systemctl enable nginx

最後

systemctl start nginx

答案2

通常,在 Ubuntu 中,套件提供的單元檔案會進入/lib/systemd/system/目錄,例如/lib/systemd/system/nginx.service,而使用者提供的或對套件提供的單元檔案的任何修改進入/etc/systemd/system/目錄。

現在,要覆蓋,您可以:

  • 將單元檔案命名為提供的套件,例如要覆蓋/lib/systemd/system/nginx.service,您可以建立該檔案/etc/systemd/system/nginx.service並將指令放在那裡

  • .conf或者,您可以建立以原始單元檔案命名的目錄結尾的插入片段,並附.d加到目錄名稱,例如,您可以建立一個名為的檔案/etc/systemd/system/nginx.service.d/override.conf並將語句放入其中


現在,您可以利用該systemctl edit命令為您完成所有手動操作,即它將為您創建必要的覆蓋文件(首先它將創建一個臨時文件(帶有用於插入片段的中間目錄),然後保存它會將臨時文件提交rename()到所需的最終文件),您只需編輯該文件即可放入您的覆蓋。

例如,要為上面提到的ngnx.service( /lib/systemd/system/nginx.service) 建立覆蓋片段:

systemctl edit nginx.service

預設情況下,它將使用該檔案/etc/systemd/system/nginx.service.d/override.conf。如果--full使用,則將/etc/systemd/system/nginx.service使用完整的替換檔案(原始內容/lib/systemd/system/nginx.service將複製到此文件)。

您也可以用來--runtime創建片段/run/systemd/system/(首先是插入片段,然後是整個片段--runtime,並且--full不互相排斥),這當然是臨時的。

顯然,您可以選擇要使用的編輯器,優先順序是:

$SYSTEMD_EDITOR > $EDITOR > $VISUAL > editor > nano > vim > vi

相關內容