crontab www用户定时任务不执行
通过命令
crontab -u www -e
创建的定时任务就是不执行五个星 cd /data/wwwroot/laravel && php artisan schedule:run >> /dev/null 2>&1
单独执行
cd /data/wwwroot/laravel && php artisan schedule:run >> /dev/null 2>&1
是能够执行的,执行逻辑是没问题的
查看
cron
日志/var/log/cron
没发现异常Oct 8 11:26:01 VM-25-18-centos CROND[8472]: (www) CMD (cd /data/wwwroot/laravel && php artisan schedule:run >> /dev/null 2>&1)
看到网上说的更改
/usr/bin/crontab
权限,权限充足不需要更改-rwsr-xr-x 1 root root 57664 Nov 20 2018 crontab
后来
crontab -u www -e
添加一个测试任务* * * * * echo "11" >> /data/wwwlogs/cron.txt
执行了,为啥laravel
的任务不执行呢..
解决了
加上 php
的完整路径好了,/usr/local/php/bin/php
,什么原因还是懵逼,php
明明是可以命令行执行的。
* * * * * cd /data/wwwroot/laravel && /usr/local/php/bin/php artisan schedule:run >> /dev/null 2>&1
本身运行
php
能执行是当前登录这个用户的环境执行,会自动查找PATH
路径,而crontab
,你使用的是www
用户并没有相关环境变量,如果你为www
创建了home目录并且设置了相关环境变量也是,www
用户应该就可以直接执行php
命令了,相关创建用户并设置默认的shell的初始配置文件路径在/etc/skel
中,可以查看下。