Crontab 运行 bash 脚本记录“未找到命令”

Crontab 运行 bash 脚本记录“未找到命令”

我正在尝试以一定的时间间隔运行命令。

pm2 restart appname

我自己做这个是可行的。然后我将其添加到 bash 脚本中。

#!/bin/bash
pm2 restart appname

运行bash脚本有效:bash scriptname.sh

然后我将其添加到我的 crontab 中:

* * * * * /usr/local/crontab-scripts/scriptname.sh >> /var/log/cronlog.log 2>&1

这给了我错误:/usr/local/crontab-scripts/scriptname.sh: line 4: pm2: command not found

我没有以 root 身份执行任何操作,我已经全局安装了 pm2,我将其放入脚本中whereis pm2并记录了正确的路径/usr/local/bin/pm2。然后,我在运行 pm2 之前尝试将脚本 cd 到该路径,没有任何区别。

我没什么主意了。

答案1

当您从脚本或 CRON 作业中调用应用程序或命令时,它有助于阐明应用程序的完整路径。

对于您这种情况,我会尝试将您的脚本重写为:

#!/bin/bash
/usr/local/bin/pm2 restart appname

但是,这似乎有点小题大做,您还不如pm2直接从 crontab 中调用:

* * * * * /usr/local/bin/pm2 restart appname >> /var/log/cronlog.log 2>&1

相关内容