我正在尝试编写一个自动启动脚本,该脚本在启动时启动并在崩溃时重新启动。只需将脚本添加到
/etc/rc.local
文件,但我的问题是自动重启。我考虑在启动实际脚本之前将 $$ 变量导出到外部文本文件中,并将其与另一个脚本一起使用以检查该 pid 是否仍在运行。我现在的问题是如何检查特定 PID 是否仍在运行,以及是否有更可靠的方法来执行此操作。
答案1
您的脚本需要以这种方式执行的是systemd
服务。
以下示例就是一个例子:
[Unit]
Description=My Script
[Service]
Type=forking
ExecStart=/path/to/script
Restart=on-failure
[Install]
WantedBy=multi-user.target
可以通过多种方式实现:
将您的脚本放在另一个位置并从您的
systemd
服务文件中访问它。将代码直接放在
systemd
服务文件中。
我相信第一个选项最适合您的情况。现在,完成后,使用常规命令在启动时启用systemctl
,例如:
sudo systemctl enable myscript.service
sudo systemctl status myscript.service
sudo systemctl stop myscript.service
sudo systemctl start myscript.service
资料来源:
https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files
https://www.freedesktop.org/software/systemd/man/systemd.unit.html