服务器用的 AWS 的 EC2,现在想实现一个功能就是用 crontab 定时执行 pm2 命令,安装 pm2 的时候用了 sudo
我将要执行的 pm2 命令写成 shell 脚本,直接用 crontab 执行 shell 脚本,但是在执行的时候提示pm2: command not found
,直接执行这个 shell 脚本是没问题的
对 Linux 比较陌生,这个应该是执行 crontab 和我安装的 pm2 命令不是同一个用户? 这种应该怎么处理呢?
![]() | 1 jasonyang9 2017-12-01 18:50:29 +08:00 ![]() |
![]() | 2 mentalkiller 2017-12-01 19:00:38 +08:00 via iPhone pm2 命令需要绝对路径,如 /use/bin/pm2 xxx |
![]() | 3 mentalkiller 2017-12-01 19:01:52 +08:00 via iPhone use -> usr 错别字抱歉 |
![]() | 4 imherer OP @mentalkiller 我试过绝对路径,因为我的 node 是用 nvm 安装的,报错:/usr/bin/env: node: No such file or directory |
![]() | 5 surfire91 2017-12-01 19:11:24 +08:00 你确定你命令的路径对吗 |
![]() | 8 Cat73 2017-12-01 21:47:08 +08:00 因为 cron 执行的时候是不带环境变量的,因此你需要自己设置一下 PATH,然后就可以正常使用平台的代码了 |
9 957204459 2017-12-02 08:35:21 +08:00 via iPhone 前面加 source ~/.bash_profile |
![]() | 10 daggerjames 2017-12-02 10:20:54 +08:00 8 楼是表达 自己加 PATH |
![]() | 11 daggerjames 2017-12-02 10:21:07 +08:00 @daggerjames 标答 |
![]() | 12 cy18 2017-12-02 13:18:45 +08:00 via Android 我比较好奇 crontab 里面怎么 sudo ?不需要输密码? |