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

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

  •  
  •   sciel · 149 天前 · 482 次点击
    这是一个创建于 149 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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  
       149 天前   ❤️ 1
    npm 命令写全路径
    /path/to/npm
    sciel
        2
    sciel  
    OP
       149 天前
    @knightdf 谢谢 加全路径没有报上面的错误,但还是不能启动呢。直接运行是可以的

    ```

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

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

    再不然 先 source 一下配置文件

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