如何在 Ubuntu 服务器 20.04 中输入登录前自动启动守护进程的命令

如何在 Ubuntu 服务器 20.04 中输入登录前自动启动守护进程的命令

我在 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.servicesystemctl status btfs_main.serviceUnit 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 status rc-local.service

您应该获得如下图所示的输出。 在此处输入图片描述

  1. 现在将您的脚本放入/etc/rc.local文件中并使其可执行。
  2. 重新启动服务器并检查结果。

相关内容