現有工作服務無法辨識 - Ubuntu 18.04

現有工作服務無法辨識 - Ubuntu 18.04

我正在嘗試在 Ubuntu Server 18.04 中啟動時載入腳本。我的.service腳本安裝在 中/etc/systemd/system,我可以運行:

service my-service start

和:

service my-service stop

但是當我嘗試在啟動時運行(根據網路我應該這樣做):

 service my-service enable

系統響應:

 my-service: unrecognised service

搜尋網路只告訴我如何在舊版本的 Ubuntu 中執行此操作,不適用於 18.04,我無法確定正確的術語來找到答案。

劇本:

# filename: /etc/systemd/system/my-service.service
[Unit]
Description=My Service
After=network.target
After=mysqld.service

[Service]
User=the-user
WorkingDirectory=/home/the-user/path-to-script
ExecStart=/home/the-user/path-to-script/start.sh
SuccessExitStatus=0
TimeoutStopSec=10
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

我的問題是:我做錯了什麼?我怎麼能在開機時啟動這個服務?

答案1

使用真正的命令,它systemd是:

sudo systemctl enable my-service

作為參考,如果您希望單元檔案為普通使用者(例如您自己的使用者)執行,則不必使用單元檔案的主系統目錄。您可以在目錄中建立它,例如:

~/.config/systemd/user/

然後你可以這樣做:

systemctl --user enable my-service

這避免了需要sudo

正如您在評論中指出的那樣,在運行systemdUser指令的每個用戶實例時應該不存在

答案2

筆記:
在其他情況下,您會遇到相同的錯誤:
service命令將目的第一的 !

service foo start

systemctl指令執行相反的操作:

systemctl start foo

另外,在service中,你不能加上“.service”,而如果你使用systemctl則可以。

相關內容