![自我监督脚本](https://linux22.com/image/582304/%E8%87%AA%E6%88%91%E7%9B%91%E7%9D%A3%E8%84%9A%E6%9C%AC.png)
有人写过自监控脚本吗?可以分享一下解决方法吗?我的一台路由器上有 DD-WRT,只能制作一个启动脚本。问题是脚本无法运行。如果我通过 telnet 登录并手动启动它,它会运行得很好。所以我需要添加一个 cron 规则来运行它,但不能运行多次。我考虑使用:
if [`ps | grep [c]ustom.sh` -gt 1]; then
exit;
else
...
fi
您知道还有其他方法可以做到这一点吗?
答案1
您可以使用保留在内存中的锁(通常 /tmp 是 tmpfs 挂载),该锁将在启动时被删除:
[ ! -f /tmp/rc.local.lock ]&&touch /tmp/rc.local.lock||exit
我认为问题在于,与 ssh shell 相比,您的脚本中没有相同的可用环境(例如 PATH...)。您应该将脚本的输出写入日志文件中。只需在脚本开头添加此行即可。
exec >/tmp/rc.local.log 2>&1