[英]linux can't access screens on crontab
我创建了一个bash文件,该文件在名为“ cronscreen”的现有屏幕上执行python脚本。 bash文件包含以下行:
screen -S cronscreen -X stuff "python test.py$(printf \\r)"
当我从命令行运行文件时,它运行良好,并且在附加“ cronscreen”时看到输出已打印。 但是,我希望它在cron中运行,因此我将crontab设置如下:
* * * * * myuser /home/myuser/myscript.sh > /home/ec2-user/agg.log
执行cron是因为我可以看到每分钟都会重新生成文件agg.log,但是当我附加“ cronscreen”时,我看不到任何输出(并且agg.log为空)。 这是为什么? 谢谢。
更新:
我还尝试将脚本更改为此(重新连接屏幕),但没有更改:
screen -r cronscreen
screen -S cronscreen -X stuff "python test.py$(printf \\r)"
屏幕需要一个tty active来创建会话,而该会话在cron下不可用。
您需要将其分为两部分,第一部分是运行屏幕并使它分离-screen -dmS cronscreen,然后在您的cronjob中使用-r cronscreen附加到屏幕会话
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.