• 请不要在回答技术问题时复制粘贴 AI 生成的内容
imherer
V2EX  ›  程序员

Linux crontab 权限问题

  •  
  •   imherer · Dec 1, 2017 · 4953 views
    This topic created in 3261 days ago, the information mentioned may be changed or developed.

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

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

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

    13 replies  •  2017-12-03 00:12:37 +08:00
    mentalkiller
    mentalkiller
    Dec 1, 2017 via iPhone
    2
    pm2 命令需要绝对路径,如 /use/bin/pm2 xxx
    mentalkiller
    mentalkiller
    Dec 1, 2017 via iPhone
    3
    use -> usr
    错别字抱歉
    imherer
    imherer
    OP
    Dec 1, 2017
    4
    @mentalkiller 我试过绝对路径,因为我的 node 是用 nvm 安装的,报错:/usr/bin/env: node: No such file or directory
    surfire91
    surfire91
    Dec 1, 2017
    5
    你确定你命令的路径对吗
    imherer
    imherer
    OP
    Dec 1, 2017
    6
    @surfire91 对的。我用绝对路径执行过命令,没问题
    xiaoz
    xiaoz
    Dec 1, 2017 via Android
    7
    @imherer which pm2 找出路径
    Cat73
    Cat73
    Dec 1, 2017
    8
    因为 cron 执行的时候是不带环境变量的,因此你需要自己设置一下 PATH,然后就可以正常使用平台的代码了
    duskx
    duskx
    Dec 2, 2017 via iPhone
    9
    前面加 source ~/.bash_profile
    daggerjames
    daggerjames
    Dec 2, 2017
    10
    8 楼是表达 自己加 PATH
    daggerjames
    daggerjames
    Dec 2, 2017
    11
    @daggerjames 标答
    cy18
    cy18
    Dec 2, 2017 via Android
    12
    我比较好奇 crontab 里面怎么 sudo ?不需要输密码?
    sutra
    sutra
    Dec 3, 2017
    13
    @cy18 可以配置 sudo 不需要密码。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2479 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 15:00 · PVG 23:00 · LAX 07:00 · JFK 10:00
    ♥ Do have faith in what you're doing.