bash - 从服务运行时,NVM 似乎没有指向正确的用户
问题描述
我有一种情况,我有一个运行 shell 脚本的服务,该服务反过来使用 NVM 将我当前的 Node 环境设置为 8.16.0。该脚本工作正常,但是当我启动应该执行相同操作的服务时,由于没有节点版本 8.16.0,尽管它已安装在我当前的用户中,但它失败了。NVM 的行为方式可能会影响到这一点,我是否可能遗漏了什么?
我已经尝试将服务中的用户设置为所需用户。
这是服务代码:
[Unit]
Description=script startup service
After=network.target
StartLimitIntervalSec=1
[Service]
Type=simple
Restart=always
RestartSec=1
User=pi
Group=pi
ExecStart=/home/pi/job.sh
[Install]
WantedBy=multi-user.target
这是 job.sh 给我带来麻烦的部分:
#! /bin/sh
. ~/.nvm/nvm.sh
nvm use 8.16.0
我希望它将 nvm 更改为 8.16.0 版本,但我收到一条消息,指出未安装该版本。
解决方案
推荐阅读
- algorithm - 计算三种不同排列中相同有序对的数量
- python - 张量流(CPU)中的并行推理
- python - 如何测试单例 __del__() 方法?
- python - 我应该能够在笔记本电脑 Geforce RTX 2060 GPU 上使用预编译的 TensorFlow 2 吗?
- powerbi - 总计数的总和(基于用户计数的运行总和) - 可能吗?
- python-3.x - 将 datetime timedelta 与 numpy 3d 数组一起使用
- django - 嵌套 JSON 和 HyperlinkedModelSerializer 问题
- javascript - 使用背景时,图像不会出现在 reactjs 中:url()
- python - 在安装 pip 时出现 anaconda2 错误
- wordpress - 为什么 Facebook 无法抓取我的页面?