我有一个 nodejs/swagger 项目,正在虚拟 Ubuntu 实例上运行,用于我现在正在上的一门课,我希望能够让它在后台运行。我显然能够连接到该项目,但当我关闭 PuTTY 会话时,API 似乎会出现问题,无论我如何运行该项目。
我已经使用了nohup
、detach
、&
和的所有组合screen
来运行它,不知何故,每次我都会得到完全相同的行为:当我打开 PuTTY 会话时(或者,当我通过主机通过 VBox 屏幕登录时 - 我不必这样做任何事物,我似乎只需要以某种方式登录),API 似乎恢复了,当我关闭 PuTTY(或在 VBox 屏幕中注销)时,API 似乎崩溃了。
我说似乎是因为我不熟悉 nodejs 或 swagger,但我可以说的是,当我登录时,它http://localhost:3000/viewer/
会给我它应该出现的交互式页面,而当我注销时,它会返回与我登录时http://localhost:3000/viewer/
相同的内容:(如果我没记错的话,它是一个 JSON 对象?)。http://localhost:3000/api/
{"message":"Cannot read property 'apiPath' of undefined"}
我只能说,这似乎与我安装 nodejs 的方式有关(我使用了nvm install 4.1.0
而不是apt-get install nodejs-legacy
),因为我注意到当我注销然后重新登录时,如果我nvm use v4.1.0
的 末尾没有包含.bashrc
,那么 Ubuntu 就不会识别node
或npm
或swagger
作为命令。作为参考,这是我添加到 中的其余内容.bashrc
:
export NVM_DIR="/home/pockets/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
. ~/.nvm/nvm.sh
nvm use v4.1.0