ubuntu - linux中定时任务crontab中的php任务无法执行,求可能的原因

查看:73
本文介绍了ubuntu - linux中定时任务crontab中的php任务无法执行,求可能的原因的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

等待被执行的test.php脚本,该脚本在本地环境可以执行,在linux上手动执行php test.php也可以执行

$name='./log/20161025.txt';
if(file_exists($name))
{
    file_put_contents($name, '定时任务开始了');
}

执行 crontab -e 编辑定时任务

* * * * * /usr/bin/php /home/wwwroot/demo/test.php > /var/log/cron.log 

我的尝试:

  • 执行ps -ef | grep cron,查看定时任务进程,可以看到一个进程,也就是说定时任务在运行,所以不存在定时任务没有开启的问题

  • 执行/usr/sbin/service cron restart,重启定时任务,cron.log中没记录,20161025.txt中也没有内容

  • 执行chomd +x test.php 增加权限,没有效果

  • 执行which php,返回/usr/bin/php php路径没错

暂时找不到可能的原因,求高手思路

补充:
最后测试定时任务是可以执行的

$name=__DIR__.'/log/20161025.txt';

if(file_exists($name))
{
    file_put_contents($name,date('Y-m-d H:i:s',time())."\r\n",FILE_APPEND);
}

用脚本的打印当前时间,这是每分钟执行一次

解决方案

php路径没错,但是启动定时任务时工作目录不是你的php文件所在目录,所以你的代码要改下

$name=__DIR__.'/log/20161025.txt';
if(file_exists($name))
{
    file_put_contents($name, '定时任务开始了');
}

这篇关于ubuntu - linux中定时任务crontab中的php任务无法执行,求可能的原因的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆