是否有一个Unix命令可以监视任意进程并在它们被操作系统杀死时恢复这些进程?例如,我有一个定期执行的后台守护进程,但有时它会被操作系统杀死。我想再次恢复这个过程或类似的事情。
答案 0 :(得分:2)
鉴于这个问题的模糊性以及OP所尝试的内容,这里有一个答案。最近的Ubuntu(假设来自标签),OP使用systemd
系统,在这种类型的系统中,可以编写一个systemd
服务脚本,如果它退出则会重启守护进程;
~]# cat /usr/lib/systemd/system/myawesome.service
[Unit]
Description=My Awesome Service
After=systemd-logind.service
[Service]
Type=notify
ExecStart=/path/to/my/awesome/daemon
KillMode=process
Restart=always
[Install]
WantedBy=multi-user.target
然后启动此服务,
~]# systemctl start myawesome.service
~]# systemctl enable myawesome.service # To sustain after a reboot
要了解有关systemd服务单元文件的更多信息,请访问以下链接:
https://www.freedesktop.org/software/systemd/man/systemd.service.html https://www.freedesktop.org/software/systemd/man/systemd.unit.html