如何在 Ubuntu 伺服器 20.04 中新增登入前自動啟動守護程式的命令

如何在 Ubuntu 伺服器 20.04 中新增登入前自動啟動守護程式的命令

我在 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-reloadsudo systemctl enable btfs_main.servicesudo systemctl start btfs_main.servicesystemctl status btfs_main.service。使用最後的指令我有一些錯誤:Unit btfs_main.service has a bad unit file setting。如何配置單位設定以使這兩個命令自動運行?

答案1

您可以使用 /etc/rc.local 檔案在伺服器重新啟動後啟動腳本。

因此,您需要執行的步驟如下:

  1. 首先建立/etc/rc.local文件並使其可執行。這個雲可以透過命令來完成chmod a+x /etc/rc.local
  2. 現在建立/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
  1. 之後,在系統啟動時啟用該服務:

systemctl 啟用 rc-local

  1. 現在啟動服務並檢查其狀態:

systemctl 啟動 rc-local.service

systemctl 狀態 rc-local.service

你應該會得到如下圖的輸出。 在此輸入影像描述

  1. 現在將腳本放入/etc/rc.local檔案中並使它們可執行。
  2. 重新啟動伺服器並檢查結果。

相關內容