shell - (shell脚本文件)pm2 : command not found in crontab task

标签 shell cron pm2 cron-task

我的 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/

相关文章:

node.js - 使用 PM2 在 AWS EC2 实例上运行的 Node 项目

linux - 需要一些关于 shell 脚本的帮助(使用 grep 命令)

c - UNIX shell 出现 "Command not found"错误

node.js - PM2 在多个实例中未启动 Node.js 应用程序

python - 双击批处理文件并在 cronjob 中执行它时的不同行为

linux - 运行 cron sh 时出错

node.js - 使用 ELB 和 Node 防止 X-Forwarded-For 欺骗

shell - Bash 尝试计算出现次数?

swift - 如何在 swift shell 应用程序中制作可编辑的文本字段

php - 调试 cron PHP 脚本