首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不执行Cronjob屏幕PHP

不执行Cronjob屏幕PHP
EN

Server Fault用户
提问于 2014-01-11 20:45:35
回答 2查看 189关注 0票数 0

如果我在终端中执行以下操作,它就能工作:

代码语言:javascript
复制
screen -dmS tt-rss-daemon sudo -u www-data /usr/bin/php /usr/share/nginx/www/tt-rss/update.php --feeds --daemon

如果我在Crontab (crontab -e)中编写以下代码并重新启动机器,就不会发生任何事情。

代码语言:javascript
复制
@reboot screen -dmS tt-rss-daemon sudo -u www-data /usr/bin/php /usr/share/nginx/www/tt-rss/update.php --feeds --daemon

有人知道怎么纠正这个问题吗?

EN

回答 2

Server Fault用户

发布于 2014-01-11 21:00:10

系统启动时是否设置为运行cron?尝试将其设置为在特定时间运行,并查看它是否运行。如果没有,那么cron就不会运行,您需要添加cron来启动相关的运行级别。

在红帽:

代码语言:javascript
复制
chkconfig cron on

在Gentoo:

代码语言:javascript
复制
rc-update add cron default

在Debian/Ubuntu

代码语言:javascript
复制
update-rc.d cron defaults

如果做不到这一点,大多数发行版都有一个在引导时运行的脚本。在Redhat分布中

代码语言:javascript
复制
/etc/rc.d/rc.local

在Gentoo

代码语言:javascript
复制
/etc/local.d/anyfilename.start

在Debian中,我认为您必须创建自己的init脚本。

票数 0
EN

Server Fault用户

发布于 2014-01-12 00:35:35

检查您的sudoers文件并确保您没有启用requiretty (查找类似于Defaults requiretty的行)。requiretty防止sudo在cron和其他非交互情况下使用。这不是Debian中的默认设置。我相当肯定,如果是这样的话,cron应该向您的用户发送错误消息(除非它被配置为not,或者您将输出发送给/dev/null)。

另一个选项是,如果您的用户没有拥有个人crontab的权限。在这种情况下,cron将完全忽略您的条目。如果存在/etc/cron.allow,则必须在其中列出用户。如果存在/etc/cron.deny,则不能在其中列出您的用户。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/566639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档