如何在 Ubuntu 20.04 LTS 中系统启动/重启时运行进程/二进制文件?

如何在 Ubuntu 20.04 LTS 中系统启动/重启时运行进程/二进制文件?

我有一台 Ubuntu Server 20.04 LTS,还有一个二进制文件,用于在文件夹 /home/dir1/dir2 内运行一个名为二进制的进程。

  1. 我相信可能有多种方法可以实现此目的,但是,如果我可能知道的话,在哪里以及如何配置此二进制文件/进程的最佳方法,以便它可以在每次系统重新启动时自动运行?

  2. 有什么方法可以确保此进程/二进制文件始终保持运行?意思是,系统会持续检查/监控此进程,如果该进程被手动终止或停止,或者由于用户或系统错误等原因,它会自动重新启动/重新运行?

如有任何带有配置示例的建议,我们将不胜感激。

干杯

答案1

Systemd 可以为您做到这一点。

以下是典型单元文件的示例:

$ cat /etc/systemd/system/yourdaemon.service
[Unit]
Description=Your Daemon
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service

[Service]
ExecStart=/path/to/daemon

[Install]
WantedBy=multi-user.target

以下是启用了失败重启功能的单元文件:

$ cat /etc/systemd/system/yourdaemon.service
[Unit]
Description=Your Daemon
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service

StartLimitIntervalSec=500
StartLimitBurst=5

[Service]
Restart=on-failure
RestartSec=5s

ExecStart=/path/to/daemon

[Install]
WantedBy=multi-user.target

我认为详细讨论所有内容超出了这个答案的范围,但简而言之:

  1. 为您想要启动的服务(二进制文件/进程)创建一个单元文件。
  2. 确保包含如上所示的StartLimit和选项。Restart

参考

相关内容