我在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,我该怎么做?
答案 0 :(得分:10)
nvm
命令不是文件,而是shell函数。
source ~/.nvm/nvm.sh
将这些函数添加到当前shell中。因为这些命令不是文件,所以当你which nvm
时它们不会出现。
查看.nvm/nvm.sh
文件,您可以看到定义了提供该功能的nvm(){...}函数。
Cron可能会以不同的用户身份使用,并且该用户需要在运行之前将source ~/.nvm/nvm.sh
添加到其shell上下文中。