我的 shell 脚本
#!/bin/bash
pm2 start server.js
我的 crontab 任务
* * * * * /home/ec2-user/abcd/test.sh > /home/ec2-user/cron.log 2>&1
我从日志中得到了什么:
home/ec2-user/abcd/test.sh: line 2: pm2: command not found
如何解决?
备注:
1.当我执行./test.sh时,运行正常
2.which pm2 - 显示
~/.nvm/versions/node/v14.16.1/bin/pm2
最佳答案
问题可能是因为 cron 作业执行时尚未设置 PATH
环境变量,这就是为什么你的 shell 脚本找不到 pm2
。您必须输入pm2
的完整地址。
如果 pm2
位于 /usr/bin/
中的示例:
#!/bin/bash
/usr/bin/pm2 start server.js
或者您可能只想在要在 shell 脚本中执行的命令之前设置 PATH
env。
正常情况下,当您在终端中执行程序时,环境变量已正确设置。这就是为什么您可以在终端中毫无问题地运行 shell 脚本的原因。
关于shell - (shell脚本文件)pm2 : command not found in crontab task,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68092896/