V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
imherer
V2EX  ›  Node.js

crontab 执行 pm2 命令

  •  
  •   imherer · 2018-05-09 16:31:46 +08:00 · 4962 次点击
    这是一个创建于 2382 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近有个需求需要定时执行一些 pm2 命令,于是我就想到了将这些 pm2 命令写入一个.sh 脚本,然后直接用 crontab 定时执行这个脚本就行了

    一开始直接在 sh 脚本里写 pm2 xxx,执行了下报pm2 command not found

    于是 which 了一下 pm2 然后在 sh 里写上了 pm2 的完整路径,同时也单独执行了下这个 sh 脚本是没问题的 但是放在 crontab 里执行就报/usr/bin/env: node: No such file or directory

    服务器 node 是用 nvm 安装的,所有操作都是同一个用户

    奇怪的是两台服务器,一台能成功执行,另一台不能成功执行,两台环境都是一样的

    Linux 这块知识比较薄弱,请教各位大神应该如何排查问题和解决

    11 条回复    2022-02-15 19:44:08 +08:00
    2code
        1
    2code  
       2018-05-09 16:42:00 +08:00
    应该是两台服务器的$PATH 变量的配置不同导致的吧
    imherer
        2
    imherer  
    OP
       2018-05-09 16:48:23 +08:00
    @2code 看了两台服务器的 PATH 是一样的
    2code
        3
    2code  
       2018-05-09 17:43:20 +08:00
    你是怎么看的?要看的是 crontab 执行的时候的$PATH 变量,不是一般用户登录上去之后的$PATH 变量
    imherer
        4
    imherer  
    OP
       2018-05-09 17:58:31 +08:00
    @2code 我在.bash 里看的,那 crontab 执行的时候的$PATH 变量 应该怎么看呢?
    imherer
        5
    imherer  
    OP
       2018-05-09 18:01:51 +08:00
    @2code 我在 /etc/crontab 文件里找到了,文件里的 PATH=/sbin:/bin:/usr/sbin:/usr/bin
    我的 node 在如下路径里都有
    /usr/bin/node /usr/lib/node /usr/local/bin/node /home/ec2-user/.nvm/versions/node/v8.11.1/bin/node
    fds
        6
    fds  
       2018-05-09 18:16:57 +08:00   ❤️ 2
    pm2 是个可执行的脚本文件,开头是 ```#!/usr/bin/env node``` 也就是会调用 ```env node``` 执行这个脚本文件。肯定是两个 env 配置不太一样。简单的改法是直接把 node 写在 pm2 前面就行,类似
    * * * * * /usr/bin/node /path/to/pm2 command
    imherer
        7
    imherer  
    OP
       2018-05-09 18:28:25 +08:00
    @fds 感谢,按这个方法搞定了!
    julyclyde
        8
    julyclyde  
       2018-05-09 21:14:45 +08:00
    现在学 node 都可以不先学 linux 了吗
    zhengzhou518
        9
    zhengzhou518  
       2018-05-10 00:13:05 +08:00
    希望 V2EX 加入这种黑色主题来让用户查看
    POPOEVER
        10
    POPOEVER  
       2018-05-10 14:45:46 +08:00
    这个应该交给 systemd 才靠谱吧
    klmd99
        11
    klmd99  
       2022-02-15 19:44:08 +08:00
    @fds 感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2637 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 04:28 · PVG 12:28 · LAX 20:28 · JFK 23:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.