
我在 Ubuntu 伺服器 20.04 中有兩個程序,位於:
/home/kiko/go-btfs/cmd/btfs
/home/kiko/node5007/cmd/btfs
它們都使用命令運行:./btfs daemon
如何使兩個目錄在登入伺服器之前自動啟動該命令?我嘗試建立自動啟動服務,sudo nano /etc/systemd/system/btfs_main.service
然後將以下設定放入裝置中btfs_main.service
:
[Unit]
Description=Starting_btfs_daemon
Wants=network.target
After=syslog.target network-online.target
[Service]
Type=simple
ExecStart=/home/kiko/go-btfs/cmd/btfs/./btfs daemon
ExecStart=/home/kiko/node5007/cmd/btfs/./btfs daemon
Restart=on-failure
RestartSec=10
KillMode=process
[Install]
WantedBy=multi-user.target
進而:sudo systemctl daemon-reload
,sudo systemctl enable btfs_main.service
,sudo systemctl start btfs_main.service
,systemctl status btfs_main.service
。使用最後的指令我有一些錯誤:Unit btfs_main.service has a bad unit file setting
。如何配置單位設定以使這兩個命令自動運行?
答案1
您可以使用 /etc/rc.local 檔案在伺服器重新啟動後啟動腳本。
因此,您需要執行的步驟如下:
- 首先建立
/etc/rc.local
文件並使其可執行。這個雲可以透過命令來完成chmod a+x /etc/rc.local
。 - 現在建立
/etc/systemd/system/rc-local.service
文件。建立systemd服務檔案後,新增以下內容。
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
- 之後,在系統啟動時啟用該服務:
systemctl 啟用 rc-local
- 現在啟動服務並檢查其狀態:
systemctl 啟動 rc-local.service
systemctl 狀態 rc-local.service
- 現在將腳本放入
/etc/rc.local
檔案中並使它們可執行。 - 重新啟動伺服器並檢查結果。