我不知道为什么会这样,但我的服务器上安装了phantomjs
$which phantomjs
/usr/local/bin/phantomjs
我正在从crontab运行脚本:
0 */5 * * * /home/roy/.rbenv/shims/ruby /home/roy/SCRIPT/lib/SCRIPT.rb
如果我只是从命令行运行确切的命令,它将运行。
但如果它从cronjob运行,我得到:
/home/roy/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/cliver-0.3.2/lib/cliver/dependency.rb:143:in
`raise_not_found!': Could not find an executable ["phantomjs"] on your path. (Cliver::Dependency::NotFound)
我已经在可能的重复Could not find phantomjs中看到了这一点,但即使安装了它,它似乎仍然没有在cron中运行。
有没有办法检查这可能出错的地方?仅仅为了背景,它已经工作了大约一个月,但是当我尝试从phantomjs 2.0.0更新到phantomjs 2.1.1时就崩溃了。
答案 0 :(得分:1)
当运行可执行文件$PATH
时,它是一个目录数组,搜索该可执行文件。
例如,如果您的$PATH
包含/bin
,则可以phantomjs
运行,/bin
会搜索/bin/phantomjs
。
从Cron运行脚本时,$PATH
包含的目录与从bash
运行该脚本时的目录不同。
要在不依赖$PATH
的情况下运行可执行文件,只需使用其绝对路径即可。绝对路径以/
开头。
which phantomjs
中运行bash
。这将显示phantomjs
的绝对路径。phantomjs
。