Linux 运行屏幕和命令crontab
我试图添加一个新的crontab,它打开一个屏幕窗口,并在这个窗口中执行php命令 我正在尝试的是:Linux 运行屏幕和命令crontab,linux,cron,gnu-screen,Linux,Cron,Gnu Screen,我试图添加一个新的crontab,它打开一个屏幕窗口,并在这个窗口中执行php命令 我正在尝试的是: sudo crontab -e 10 0 * * * * screen -d -m php /var/www/script.php 这不会创建一个屏幕,但是,如果在-m之后删除,会创建一个正常的屏幕。 这段代码返回我必须在终端上运行的代码 10 0 * * * * screen -d 我该怎么做? 有可能吗 谢谢 编辑 明白了。我要做的是向附加的屏幕发送一些命令,如下所示: screen -
sudo crontab -e
10 0 * * * * screen -d -m php /var/www/script.php
这不会创建一个屏幕,但是,如果在-m之后删除,会创建一个正常的屏幕。
这段代码返回我必须在终端上运行的代码
10 0 * * * * screen -d
我该怎么做?
有可能吗
谢谢
编辑
明白了。我要做的是向附加的屏幕发送一些命令,如下所示:
screen -S sessionname -X stuff 'command'`echo -ne '\015'`
echo-ne'\015'
模拟按Enter键
这里提到了:一个类似的问题在 在cron中,您没有终端(参见示例)。screen希望在终端中运行。要让它在这种情况下运行需要特殊处理 根据its,对
-d
和-m
选项的组合进行了特殊处理:
-d-m
在“分离”模式下启动屏幕。这将创建一个新会话,但
不依附于它。这对于系统启动非常有用
脚本
以你为例,
php /var/www/script.php
是要运行的命令。它可能依赖于要设置的环境变量使其正常运行(例如特定的
路径
)。另一个问题中接受的答案显示了如何获取shell初始化(.profile
)的源代码,例如,设置环境。您的shell可能会使用.bash\u profile
等,但原理是一样的。因为我是个新手,所以我没有意识到东西
对让它正常工作很重要。我还以为是例句呢。对于任何其他新手,要让它为您工作,您只需更换命令
。stuff
命令被发送到屏幕,stuff命令的参数被输入屏幕窗口,就像在键盘上键入一样。