我写了一个包含phantomjs的Shell脚本,现在我希望它每天在特定时间运行。我使用了 crontab,并编辑了调用后得到的文件
crontab -e
以包括
56 13 * * * /home/lena/Str8ts_Project/str8ts2.bash
如果我手动运行脚本,它可以正常工作,但是一旦计划了脚本,我就会收到一条 Ubuntu 错误消息,标题为 phantomjs 在 GI_raise(( 中与 SIGABRT 一起崩溃。
所以显然 phantomjs 有问题,但我不知道它可能是什么。
我在联想ThinkPad上运行带有Xfce的Ubuntu 16.04。
谢谢你的帮助。
编辑:str8ts2.bash的代码
!/bin/bash
### Create Image
phantomjs str8ts.js
### Crop and keep big image
#convert file_name.png -crop 414x419+318+712 cropped.png
### Crop and discard big image
mogrify -crop 414x419+318+712 *.png
### change to directory for files and move png there
cd Str8tsFiles
mv /home/lena/Str8ts_Project/*.png .
以及单独的 phantomjs 文件 str8ts.js在开头调用
var currentTime = new Date();
currentTime = currentTime.toDateString();
currentTime = currentTime.replace(/s+/g, '_');
var file_name = currentTime + "str8ts.png";
var page = require('webpage').create();
page.open('http://www.str8ts.de/', function() {
page.render(file_name);
phantom.exit();
});
尝试以下操作:
使用which
查找默认bash
位置
which bash
这将告诉您bash
的位置,例如 /bin/bash
将要bash
的完整路径名调用添加到 crontab 条目中(另请注意-c
(
56 13 * * * /bin/bash -c /home/lena/Str8ts_Project/str8ts2.bash
我们只是想消除crontab
条目中bash
(或不的问题。