正如上述问题,是否有任何程序可以帮助我们 在前台运行另一个程序/脚本。
我知道我可以使用 at 在特定时间将程序作为后台作业运行。
at 09:00 -f bashscript.sh
本质上我需要的是一个计时器,以一定的时间间隔执行程序/脚本。
这是否意味着我必须编写一个程序或脚本,当系统时钟教导某个特定计数时执行
谢谢
答案1
是的,你可以这样做。但是,你需要确定要输出到的终端 (LINE) 的 ID。
可以通过在当前终端中运行以下命令来找到它:
$ who -mH
NAME LINE TIME COMMENT
am pts/0 2023-10-19 09:07 (172.17.0.2)
您还可以通过省略以下内容来获取所有终端连接的完整列表-m
:
$ who -H
NAME LINE TIME COMMENT
am pts/0 2023-10-19 09:07 (172.17.0.2)
am pts/1 2023-10-08 14:14 (tmux(202201).%0)
am pts/2 2023-10-08 14:14 (tmux(202201).%1)
am pts/3 2023-10-08 14:14 (tmux(202201).%2)
如果显示 LINE ttyX
(将 X 替换为数字),则为直接连接。如果显示 LINE pts/X
,则为远程连接。
现在你需要一些聪明的方法来找出你写入的终端。我无法就此给你建议,因为这将取决于你的情况。
但是,就我而言,我知道这pts/3
是tmux
我首先看到的终端窗口,所以我可以编写一个脚本将输出写入该终端。
这里一个简单的例子是neofetch
每小时运行一次。然后,将以下行添加到 crontab 中:
0 * * * * neofetch > pts/3
这样,neofetch
(由 crontab 运行) 的输出将被定向到pts/3
,并因此显示在该特定终端上。