我有bash脚本坐在linux设备在外地。我想这个脚本是运行24/7。有时候,我的脚本会因为我无法控制的原因而中断。因此,在这种情况下,我希望这个脚本在它死亡时重新启动。
有什么想法或示例代码让我去吗?
您的目标正是服务管理器的功能,而systemd是Raspbian附带的功能。您可以为脚本创建systemd服务,将其重启模式设置为always
(只能手动停止)或on-failure
(失败退出时重启)。
创建/etc/systemd/system/my-script.service
的内容如下:
[Unit]
Description=My Script
[Service]
Type=simple
ExecStart=/bin/bash /path/to/script.sh
#WorkingDirectory=somewhere if you need
Restart=on-failure
RestartSec=2
[Install]
WantedBy=multi-user.target
然后运行systemctl daemon-reload
和systemctl start my-script
。
如果您需要更多的定制,您可以查看Restart=
附近的手册页。
我会看看Cron。这是一种使脚本按照时间表自动运行的方法。几乎每台Linux机器都有Crontab,所以用几个例子来入门应该不难。