sushang123/php-crontab

已开始的任务如何结束?

Closed this issue · 26 comments

1、关闭PUTTY窗口,任务还在继续么?
2、已开始的任务如何结束?
刚学PHP的菜鸟,请指导,谢谢大神。

这个初衷是用到win服务器上的linux的也可以用 需要在php run.php & 这样就可以在后台执行了,关闭窗口照旧执行,已经执行的任务,可以找到对应的进程ID,并KILL即可

这么晚还没睡。我用ctrl+C,退出了。这时候,我看了下日志,程序好像没在执行了。因为日志没有新增加的条目了。
但是日志没看懂,内容是:
Could not open input file: demo.php
Could not open input file: demo.php
Could not open input file: demo.php
Could not open input file: demo.php
Could not open input file: demo.php
Could not open input file: demo.php
Could not open input file: demo.php

config.ini 看下这个文件,这个文件里面应该有一个配置的demo.php示例,注释或删除就可以了

你在 /home/datad/wwwroot/php-crontab-1.0.0/ 这个目录中执行下 run.php

OK了。结果出来了。非常感谢!辛苦了!

额外请教一下:
我要在demo.php里写个代码,向wordpress的数据库的中一个表写入数据,技术上可行么?安全和效率或者其他方面有没有什么不好的影响么?

和正常入库操作一样的,这个脚本是在服务器执行的,一般问题没有那么严重,除非服务器本身本入侵

OK,我研究一下。
谢谢大神,早点休息啊!

同一时间执行两个时长不一样的任务,如果一个先执行完了,下一个就不执行了,这个得怎么破呢

这个任务都会在后台执行的?你的脚本是意外退出了还是?

我写了两个脚本,用curl去抓取数据,一个执行时长大概3、4秒,另外一个执行时长大概8秒,它们都一时间执行的时候,执行完一个之后,另外一个没有执行,然后继续等待执行任务。

有什么报错么?贴一下

@andy19911227

没有报错哦。。@sushang123

@andy19911227 介意把相关脚本发给我么?我看一下

可以,你的邮箱是多少呢?@sushang123

我的报错:Could not open input file

配置如下:cd_dir = /home/vagrant/erp/tools/tools
common = php auto_product_arrival_notice.php
log_dir = /home/vagrant/erp/tools/log/php-crontab.log
cd_dir配置的路径是部署好的路径
报错如下:Could not open input file auto_product_arrival_notice.php

@xiaoshuiheban 检查下权限权限是否存在问题

@sushang123 cd_dir这里是是配置/tools/ 还是配置/home/vagrant/erp/tools/(服务映射地址)

@xiaoshuiheban cd_dir 这个是你要执行脚本所在的目录

配置如下:cd_dir = /home/vagrant/erp/tools
common = php auto_product_arrival_notice.php
log_dir = /home/vagrant/erp/tools/log/php-crontab.log
cd_dir配置的路径是部署好的路径
报错如下:Could not open input file auto_product_arrival_notice.php

这个已经重新赋值了权限,但还报错,出现这问题,会不会是路径没找到

@ @xiaoshuiheban 你的这个auto_product_arrival_notice.php 的路径是什么?

@sushang123 部署到服务器的路径是/home/vagrant/erp/tools/

我如果在/etc/crontab里直接添加定时任务是:***** root php /home/vagrant/erp/tools/auto_product_arrival_notice.php

所以我在cd_dir配置/home/vagrant/erp/tools/应该也是对的
并且Could not open input file auto_product_arrival_notice.php这个错误写进了/home/vagrant/erp/tools/log/php-crontab.log

cd_dir = /home/vagrant/erp/tools/ @xiaoshuiheban 按照这样设置试试看

@sushang123

  1. 我如果在/etc/crontab里直接添加定时任务是:***** root php /home/vagrant/erp/tools/auto_product_arrival_notice.php
    此时这定时任务是能跑通过,不会出现。Could not open input file auto_product_arrival_notice.php

2.我在cd_dir配置/home/vagrant/erp/tools/后
出现Could not open input file auto_product_arrival_notice.php错误,且将错误写进了/home/vagrant/erp/tools/log/php-crontab.log

所以现在我也很懵逼,路径应该没错,访问权限应该也有,执行的定时任务内容应该也没出错

我怀疑是不是pclose(popen('cd ' . $info['cd_dir'] . '&' . $info['common'] . $outputCommon, 'r')),
这里出问题了

2017-11-15
问题算是解决了,错误出在'cd'并没有起作用,所以导致路径不对