Linux crontab 权限问题

2017-12-01 18:47:55 +08:00
 imherer

服务器用的 AWS 的 EC2,现在想实现一个功能就是用 crontab 定时执行 pm2 命令,安装 pm2 的时候用了 sudo

我将要执行的 pm2 命令写成 shell 脚本,直接用 crontab 执行 shell 脚本,但是在执行的时候提示pm2: command not found,直接执行这个 shell 脚本是没问题的

对 Linux 比较陌生,这个应该是执行 crontab 和我安装的 pm2 命令不是同一个用户? 这种应该怎么处理呢?

3859 次点击
所在节点    程序员
13 条回复
jasonyang9
2017-12-01 18:50:29 +08:00
mentalkiller
2017-12-01 19:00:38 +08:00
pm2 命令需要绝对路径,如 /use/bin/pm2 xxx
mentalkiller
2017-12-01 19:01:52 +08:00
use -> usr
错别字抱歉
imherer
2017-12-01 19:09:21 +08:00
@mentalkiller 我试过绝对路径,因为我的 node 是用 nvm 安装的,报错:/usr/bin/env: node: No such file or directory
surfire91
2017-12-01 19:11:24 +08:00
你确定你命令的路径对吗
imherer
2017-12-01 19:12:30 +08:00
@surfire91 对的。我用绝对路径执行过命令,没问题
xiaoz
2017-12-01 20:52:50 +08:00
@imherer which pm2 找出路径
Cat73
2017-12-01 21:47:08 +08:00
因为 cron 执行的时候是不带环境变量的,因此你需要自己设置一下 PATH,然后就可以正常使用平台的代码了
957204459
2017-12-02 08:35:21 +08:00
前面加 source ~/.bash_profile
daggerjames
2017-12-02 10:20:54 +08:00
8 楼是表达 自己加 PATH
daggerjames
2017-12-02 10:21:07 +08:00
@daggerjames 标答
cy18
2017-12-02 13:18:45 +08:00
我比较好奇 crontab 里面怎么 sudo ?不需要输密码?
sutra
2017-12-03 00:12:37 +08:00
@cy18 可以配置 sudo 不需要密码。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/411216

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX