我正在尝试以一定的时间间隔运行命令。
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