我有一个命令行。当从 putty
运行它时它工作,但是当从以 root
运行的 cronjob (webmin) 运行命令时命令挂起并且永远不会完成执行..
/usr/bin/xvfb-run -a -s "-screen 0 640x480x16" /usr/bin/wkhtmltopdf /root/input.html /root/output.pdf
更新
cronjob.php
中的命令行
echo shell_exec('/usr/bin/xvfb-run -a -s "-screen 0 640x480x16" /usr/bin/wkhtmltopdf /root/input.html /root/output.pdf');
cron 作业的命令(以 root
身份运行)
php -f /var/cronjob.php
当 cron 作业从 webmin
运行时,执行永远不会完成,但是当从 putty
运行完全相同的命令时,它会起作用!这是输出
Loading page (1/2)
Printing pages (2/2)
Done
Exit with code 1 due to network error: ProtocolUnknownError
从 putty
和 webmin
运行命令(没有 wkhtmltopdf)都有效
echo shell_exec('/usr/bin/xvfb-run -a -s "-screen 0 640x480x16"');
这是输出
xvfb-run: usage error: need a command to run
Usage: xvfb-run [OPTION ...] COMMAND
Run COMMAND (usually an X client) in a virtual X server environment.
...
添加 wkhtmltopdf
时,cronjob 永远不会完成
更新二
此命令行在 cron 作业中不起作用
xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf -h
@Grokify
echo shell_exec('0 0 * * * * xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf /var/www/tmp/test.html /var/www/tmp/output.pdf >> /var/www/tmp/pdf.log 2>> /var/www/tmp/pdf.err');
pdf.err
sh: 1: 0: not found
最佳答案
cronjob 可能没有拉入用户的环境,因此不知道 $PATH 实际包含什么。我发现我需要在我的 crons 中使用二进制文件的完整路径:
2 * * * /usr/bin/php -f /var/cronjob.php
关于linux - 无法从 cronjob 运行 wkhtmltopdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29281647/