我在一台ubuntu机器上安装了NVM,但是,当我将它放入crontab以便在重启期间执行时:
@reboot nvm use 0; 它没有工作,我收到了一封来自cron守护进程的邮件,上面写道:
/bin/sh: 1: nvm: not found所以,我认为这是一个路径问题,并试图找到NVM的安装位置。令我惊讶的是,我得到的结果是空的:
root@vps-1145280-18735:~# which nvm
root@vps-1145280-18735:~# 但是,即使在重启之后,NVM本身也可以工作:
root@vps-1145280-18735:~# nvm
Node Version Manager
...这非常奇怪-当“哪个nvm”是空的时候,系统怎么会找到nvm程序呢?!
更重要的是,我应该怎么做才能让cron程序在启动期间找到NVM?
发布于 2014-11-09 02:52:39
nvm命令不是一个文件,而是一个外壳函数。
source ~/.nvm/nvm.sh会将这些函数添加到您当前的shell中。因为这些命令不是文件,所以当您使用which nvm时,它们不会显示出来。
查看.nvm/nvm.sh文件,您可以看到定义了一个提供该功能的nvm() {...}函数。
Cron可能以不同的用户身份使用,在运行之前,该用户需要将source ~/.nvm/nvm.sh添加到其外壳上下文中。
https://stackoverflow.com/questions/19131781
复制相似问题