我在 Ubuntu Server 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 status rc-local.service
- 现在将您的脚本放入
/etc/rc.local
文件中并使其可执行。 - 重新启动服务器并检查结果。