在 Linux 中,有没有办法在前台(或交互模式)运行 cron 作业?(我有一个定期运行的程序来接受用户输入并进行一些处理。所以我想将它安排为可以在前台运行的 cron 作业)。
问问题
12514 次
4 回答
11
在你的用户上试试这个crontab
:
@hourly DISPLAY=:0 xterm -e /path/to/my/script.sh
它将xterm
在您的脚本执行时(每小时)打开一次,并在您的脚本退出后退出。当然,您应该修改@hourly
零件以满足您的需要。
于 2012-10-07T18:10:53.897 回答
4
对于中的GUI
脚本cron
,请在 a 中尝试以下行shell
:
crontab -e
然后在crontab
:
0 7 * * * DISPLAY=:0 /PATH/TO/SCRIPT
于 2012-10-07T18:08:45.150 回答
2
假设您正在运行 X,您总是可以让它在选定的显示器上打开一个窗口。
于 2012-10-07T18:04:33.283 回答
1
如果您没有 GUI 而只有终端,请将出口转移到 tty。执行“tty”,它将返回您将输出重定向到的设备。例如,在 Centos 中,它将是这样的:
/ dev / pts / 0
然后在crontab -e
你写:
1 * * * * user sh / PATH / TO / SCRIPT> / dev / pts / 0
根据您的需要调整 crontab 中的时间。它只会在有人打开该终端时运行。
但是人们正在寻找问题的标题:
Linux:在前台运行 cron 作业
答案是nohup command_to_run &
:
1 * * * * nohup user sh / PATH / TO / SCRIPT &
nohup
允许像打开终端一样执行脚本并解决执行 crontab 的问题。我的意思是当我们创建一个脚本时,例如:
#! / bin / bash
echo "I make it up"
我们等待 echo 的输出来处理它。例子:
echo "I make it up"
if [[$? -gt 0]]
then
do something with the output of echo
通过在 tty 终端echo
中获取执行响应。stdout
但是从 crontab 中“没有 tty”并且发生崩溃并且 crontab 不执行应用程序。这是解决的nohup
。更多信息:man nohup
于 2020-08-07T21:30:31.247 回答