服务器用的 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 1
|
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 ?不需要输密码?
|