我有一台 Ubuntu Server 20.04 LTS,还有一个二进制文件,用于在文件夹 /home/dir1/dir2 内运行一个名为二进制的进程。
我相信可能有多种方法可以实现此目的,但是,如果我可能知道的话,在哪里以及如何配置此二进制文件/进程的最佳方法,以便它可以在每次系统重新启动时自动运行?
有什么方法可以确保此进程/二进制文件始终保持运行?意思是,系统会持续检查/监控此进程,如果该进程被手动终止或停止,或者由于用户或系统错误等原因,它会自动重新启动/重新运行?
如有任何带有配置示例的建议,我们将不胜感激。
干杯
答案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
我认为详细讨论所有内容超出了这个答案的范围,但简而言之:
- 为您想要启动的服务(二进制文件/进程)创建一个单元文件。
- 确保包含如上所示的
StartLimit
和选项。Restart
参考。