我有一个依赖于互联网的进程,它由于连接不稳定而随机死亡。
我正在写一个cron脚本,这样它每分钟都会检查进程是否正在运行,并重新启动它…
该过程不会杀死它所在的终端窗口。
我不想杀死终端,然后产生一个新的。
我希望我正在编写的shell脚本在已经打开的窗口中执行。。。
我现在正在使用i3智能终端,但任何终端都可以。
if ! ps -a | grep x123abc > /dev/null ; then
$CMD
fi
我还没有找到在特定终端中运行所需的信息。
将CMD更改为包含一个终端似乎只打开了一个新窗口。。。
建议使用不同的设计,将运行脚本与观察脚本输出分开。
-
编写名为"
worker
"的脚本;这取决于互联网,互联网由于连接不稳定而随机消亡"将ALL的输出附加到日志文件home$USERworker.log
。或者只需将名为worker
的脚本的ALL输出重定向到日志文件home$USERworker.log
。worker > home$USERworker.log 2>&1
-
将脚本名称
worker
作为可重启服务与systemd
单元服务一起运行。
下面有一篇很好的文章来解释这种做法:https://dev.to/setevoy/linux-systemd-unit-files-edit-restart-on-failure-and-email-notifications-5h3k
-
使用
tailf
命令继续观察日志文件home$USERworker.log
tailf home$USERworker.log