【问题标题】:(shell script file) pm2: command not found in crontab task(shell 脚本文件)pm2:在 crontab 任务中找不到命令
【发布时间】: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

【问题讨论】:

    标签: shell cron pm2 cron-task


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 2017-11-27
    • 2017-08-15
    • 1970-01-01
    • 2020-11-04
    • 2016-10-07
    • 2020-09-30
    • 2022-08-17
    • 1970-01-01
    相关资源
    最近更新 更多