请问,如何让Nodejs在linux(nas服务器)后台运行
请问,如何让Nodejs在linux(nas服务器)后台运行
现在的情况是,我用的nas服务器,打算把nodejs开发的网站放上去,可以通过ssh secure shell连线后执行node命令启动网站,但是一旦关闭连线软件后,网站就挂了。请问谁写过让nodejs在linux后台运行的脚本,求给参考下。或者给份能参考方案,感激不尽!
另:貌似在nas上执行不了npm命令,所以forever用不了……
当然可以,以下是如何让你的Node.js应用在Linux NAS服务器上后台运行的方法。
方法一:使用nohup
nohup
是一个命令行工具,可以让程序在你断开SSH连接后继续运行。你可以通过以下步骤来实现:
-
使用
nohup
启动Node.js应用:nohup node your-app.js &
这里
your-app.js
是你的Node.js应用程序文件名。&
符号表示将该进程放到后台运行。 -
查看输出日志:
nohup
会将标准输出和标准错误输出重定向到名为nohup.out
的文件中。你可以在当前目录下找到这个文件查看日志。tail -f nohup.out
方法二:使用screen
或tmux
如果你希望在后台运行Node.js应用的同时还能看到它的输出,并且能够在需要时重新连接到这个会话,可以使用 screen
或 tmux
。
使用screen
:
-
启动一个新的
screen
会话:screen -S mysession
-
在
screen
会话中启动你的Node.js应用:node your-app.js
-
分离
screen
会话(按Ctrl+A然后按D): 现在你已经从screen
会话中分离出来了,你的Node.js应用将继续在后台运行。 -
重新连接到
screen
会话:screen -r mysession
使用tmux
:
-
启动一个新的
tmux
会话:tmux new -s mysession
-
在
tmux
会话中启动你的Node.js应用:node your-app.js
-
分离
tmux
会话(按Ctrl+B然后按D): 你的Node.js应用将继续在后台运行。 -
重新连接到
tmux
会话:tmux attach -t mysession
这两种方法都可以让你的应用在后台持续运行,同时还能方便地查看日志和管理进程。根据你的具体需求选择合适的方法即可。
普通调试 nohup node **.js & disown -h %1
要在Linux(例如NAS服务器)上让Node.js应用在后台持续运行,即使SSH会话断开也可以,你可以使用nohup
命令或者screen
工具来实现。
使用 nohup
命令
nohup
是一个简单的命令,它可以让进程忽略挂起(SIGHUP)信号,并将输出重定向到一个文件中。
示例:
- 首先确保你的Node.js应用可以在前台正常运行。
- 使用
nohup
命令启动你的Node.js应用:nohup node /path/to/your/app.js &
- 启动后,你会看到终端显示类似如下的信息:
[1] 12345 nohup: ignoring input and appending output to 'nohup.out'
- 这时,你可以关闭SSH连接,Node.js应用仍然会在后台继续运行。默认情况下,输出会被重定向到当前目录下的
nohup.out
文件中。
使用 screen
工具
screen
是一个全屏窗口管理器,允许你在同一个物理连接上创建多个虚拟会话。
示例:
- 首先确保你的系统已经安装了
screen
工具,通常需要通过包管理器安装(如apt-get install screen
或yum install screen
)。 - 创建一个新的
screen
会话:screen -S mysession
- 在新的
screen
会话中启动你的Node.js应用:node /path/to/your/app.js
- 按下
Ctrl+A
然后按下D
键来分离当前会话。 - 关闭SSH连接后,你的Node.js应用仍然在后台运行。你可以稍后重新连接到
screen
会话:screen -r mysession
这两种方法都可以使你的Node.js应用在后台持续运行,即便SSH连接已经断开。screen
提供了更多的灵活性,比如可以重新连接到会话查看输出或操作应用。