我正在尝试通过 cron 运行 casper.js 脚本。当我手动运行脚本时一切正常,但是当我通过 cron 运行它时出现以下错误:
Traceback (most recent call last):
File "/usr/local/bin/casperjs", line 46, in <module>
status = subprocess.call(CASPER_COMMAND)
File "/usr/lib/python2.6/subprocess.py", line 480, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.6/subprocess.py", line 633, in __init__
errread, errwrite)
File "/usr/lib/python2.6/subprocess.py", line 1139, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
我的 crontab 条目是:
30 9 * * */usr/local/bin/casperjs lib/fsaupload.js arg1 arg2 arg3
我也试过
30 9 * * * python/usr/local/bin/casperjs lib/fsaupload.js arg1 arg2 arg3
这给了我相同的结果。有任何想法吗?我猜这可能是一个 path
问题,但不知道从哪里开始!
最佳答案
您可能应该使用您的 casper 脚本的绝对路径,例如:
30 9 * * * /usr/local/bin/casperjs /absolute/path/to/lib/fsaupload.js arg1 arg2 arg3
我的两分钱。
编辑:
好吧,这有点傻。您还可以通过设置 PHANTOMJS_EXECUTABLE
环境变量来设置 phantomjs
可执行文件的自定义路径:
$ export PHANTOMJS_EXECUTABLE="/path/to/phantomjs"
然后照常运行脚本:
/usr/local/bin/casperjs /absolute/path/to/lib/fsaupload.js arg1 arg2 arg3
提示:如果您的 crontab 以另一个用户身份运行,请检查它是否有权访问 phantomjs 路径。
希望它有所帮助(并且有效)。
重新编辑
等等,您得到的堆栈跟踪表明您使用的是旧版本的 CasperJS(例如,不再使用 subprocess
模块)。试试更新的版本:)
关于linux - 从 cron 运行一个 casper.js 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10705418/