如何编写shell命令以在ALREADY打开的终端窗口中执行命令



我有一个依赖于互联网的进程,它由于连接不稳定而随机死亡。

我正在写一个cron脚本,这样它每分钟都会检查进程是否正在运行,并重新启动它…

该过程不会杀死它所在的终端窗口。

我不想杀死终端,然后产生一个新的。

我希望我正在编写的shell脚本在已经打开的窗口中执行。。。

我现在正在使用i3智能终端,但任何终端都可以。

if ! ps -a | grep x123abc > /dev/null ; then
$CMD
fi

我还没有找到在特定终端中运行所需的信息。

将CMD更改为包含一个终端似乎只打开了一个新窗口。。。

建议使用不同的设计,将运行脚本与观察脚本输出分开。

  1. 编写名为"worker"的脚本;这取决于互联网,互联网由于连接不稳定而随机消亡"将ALL的输出附加到日志文件home$USERworker.log。或者只需将名为worker的脚本的ALL输出重定向到日志文件home$USERworker.log

    worker > home$USERworker.log 2>&1
    
  2. 将脚本名称worker作为可重启服务与systemd单元服务一起运行。

下面有一篇很好的文章来解释这种做法:https://dev.to/setevoy/linux-systemd-unit-files-edit-restart-on-failure-and-email-notifications-5h3k

  1. 使用tailf命令继续观察日志文件home$USERworker.log

    tailf home$USERworker.log
    

最新更新