(shell 脚本文件)pm2:在 crontab 任务中找不到命令
Posted
技术标签:
【中文标题】(shell 脚本文件)pm2:在 crontab 任务中找不到命令【英文标题】:(shell script file) pm2: command not found in crontab task 【发布时间】:2021-09-06 14:22:57 【问题描述】:我的 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
【问题讨论】:
【参考方案1】:问题可能是因为在执行 cron 作业时尚未设置 PATH
环境变量,这就是您的 shell 脚本找不到 pm2
的原因。您必须输入pm2
的完整地址。
如果pm2
在/usr/bin/
中的示例:
#!/bin/bash
/usr/bin/pm2 start server.js
或者您可能只想在要在 shell 脚本中执行的命令之前设置 PATH
env。
在正常情况下,当您在终端中执行程序时,环境变量已正确设置。这就是为什么您可以毫无问题地在终端中运行您的 shell 脚本的原因。
【讨论】:
执行上述代码后 - /usr/bin/pm2: No such file or directory 输入whereis pm2
。并查看它的位置。然后将其替换为我在代码中使用的地址。
/home/ec2-user/.nvm/versions/node/v14.16.1/bin/pm2 - 但我得到了 - /usr/bin/env: node: No such file or directory跨度>
/home/ec2-user/.nvm/versions/node/v14.16.1/bin/pm2 start server.js
所以不行?
显示 /usr/bin/env: node: No such file or directory以上是关于(shell 脚本文件)pm2:在 crontab 任务中找不到命令的主要内容,如果未能解决你的问题,请参考以下文章