在Linux中,有没有办法在前台(或交互模式)运行cron作业? (我有一个程序定期运行以接受用户输入并进行一些处理。所以我想将它安排为可以在前台运行的cron作业。)
答案 0 :(得分:9)
在您的用户crontab
上试试这个:
@hourly DISPLAY=:0 xterm -e /path/to/my/script.sh
它将在您的脚本执行时打开(每小时)xterm
,并在脚本退出后退出。当然,您应该修改@hourly
部分以满足您的需求。
答案 1 :(得分:2)
对于GUI
中的cron
脚本,请尝试shell
中的以下行:
crontab -e
然后在crontab
:
0 7 * * * DISPLAY=:0 /PATH/TO/SCRIPT
答案 2 :(得分:1)
假设您正在运行X,您可以随时在选定的显示器上打开一个窗口。
答案 3 :(得分:0)
如果没有gui且只有终端,请将出口转移到tty 执行“ tty”,它将返回您要将输出重定向到的设备,例如在Centos中,它将类似于/ dev / pts / 0,然后在crontab -e中 你写 1 * * * *用户sh / PATH / TO / SCRIPT> / dev / pts / 0 根据需要调整crontab中的时间。只有在有人打开该终端的情况下,它才会运行
该问题的标题正在寻找什么 Linux:在前台运行cron作业 答案是nohup command_to_run& 1 * * * * nohup用户sh / PATH / TO /脚本& nohup允许像执行开放终端一样执行脚本,并解决了执行crontab的问题。 我的意思是例如当我们创建脚本时 #! / bin / bash
回声“我弥补了” 然后我们等待回声的输出对其进行处理。例 回声“我弥补” 如果[[$? -gt 0]] 然后 用echo的输出做些事情
回声执行响应是通过tty终端中的stdout获得的,但从crontab“没有tty”获得,并且发生崩溃,并且crontab不执行该应用程序。这可以通过nohup解决。更多信息 哥们啊