V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sciel
V2EX  ›  问与答

请教各位一个问题哈, Linux 定时任务运行 shell 脚本, npm commond not found 如何处理呢?

  •  
  •   sciel · 2021-12-30 11:00:06 +08:00 · 848 次点击
    这是一个创建于 860 天前的主题,其中的信息可能已经有所发展或是发生改变。

    npm 的环境变量是配置了的, 直接运行 sh start.sh 都是可以运行。 但用定时任务来执行就找不到 npm 命令了。

    这是报错

    begin...
    end
    ----------------------------------------------------------------------------
    nohup: failed to run command ‘npm’: No such file or directory
    ★[2021-12-30 10:57:01] Successful
    ----------------------------------------------------------------------------
    

    这是脚本 start.sh 的内容

    echo "begin..."
    cd /root/admin
    nohup npm start &
    echo "end"
    
    knightdf
        1
    knightdf  
       2021-12-30 11:01:32 +08:00   ❤️ 1
    npm 命令写全路径
    /path/to/npm
    sciel
        2
    sciel  
    OP
       2021-12-30 11:33:49 +08:00
    @knightdf 谢谢 加全路径没有报上面的错误,但还是不能启动呢。直接运行是可以的

    ```

    begin...
    end
    ----------------------------------------------------------------------------
    /usr/bin/env: node★[2021-12-30 11:31:47] Successful
    ----------------------------------------------------------------------------
    : No such file or directory
    ```
    dilu
        3
    dilu  
       2021-12-30 11:38:26 +08:00   ❤️ 1
    定时任务用的身份是不一样的

    要么 1L 的方法写全路径,要么软链到 /usr/bin 下面

    再不然 先 source 一下配置文件

    根本原因是 PATH 中没有包含命令所在路径
    sciel
        4
    sciel  
    OP
       2021-12-30 11:56:25 +08:00
    @dilu
    @knightdf 谢谢,解决了,我将 node 和 npm 到拷贝一个到 /usr/bin 下面就好了。
    knightdf
        5
    knightdf  
       2021-12-30 15:27:32 +08:00
    @sciel 那就是你 path 里面没有其他依赖命令
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1999 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:27 · PVG 00:27 · LAX 09:27 · JFK 12:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.