我快要疯了,因为不明白我做错了什么。
我编写了这个 bash 脚本来使用 nohup 运行 php 脚本。它看起来像这样:
#!/bin/bash
nohup /usr/bin/php /opt/bitnami/nginx/html/folder/script.php $argv > fileoutput.txt 2>&1 &
当我在终端中运行 ./script.sh 时,它确实有效,如果我 grep php,我可以看到正在运行的进程,并且我的数据库也更新了。
现在我尝试使用 crontab 自动执行此过程,具体指令如下:
43 * * * * /bin/sh /opt/bitnami/nginx/html/folder/script.sh
我只是改变了当前的时间来测试自动化,因为当我设法让它工作时,我将添加一个要执行的 $argv 循环。
我已将 chmod 777 应用于 script.sh,现在我真的不知道还能修复什么。
提前致谢!
答案1
桌面的运行时环境与cron
运行时环境不同。阅读man 5 crontab
并运行
(echo "=== set ===";set;echo "===env ==="; env | sort;echo "=== alias ===";alias)
在两种环境中,并比较结果。