首页 > 解决方案 > 从服务运行时,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 版本,但我收到一条消息,指出未安装该版本。

标签: bashshellserviceraspbiannvm

解决方案


通过更改修复了问题

#! /bin/sh

#! /bin/bash

正如这篇文章所建议的那样:https ://stackoverflow.com/a/32502108/7708264


推荐阅读