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

2021-12-30 11:00:06 +08:00
 sciel

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"
958 次点击
所在节点    问与答
5 条回复
knightdf
2021-12-30 11:01:32 +08:00
npm 命令写全路径
/path/to/npm
sciel
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
2021-12-30 11:38:26 +08:00
定时任务用的身份是不一样的

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

再不然 先 source 一下配置文件

根本原因是 PATH 中没有包含命令所在路径
sciel
2021-12-30 11:56:25 +08:00
@dilu
@knightdf 谢谢,解决了,我将 node 和 npm 到拷贝一个到 /usr/bin 下面就好了。
knightdf
2021-12-30 15:27:32 +08:00
@sciel 那就是你 path 里面没有其他依赖命令

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

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

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

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

© 2021 V2EX