请问,如何让Nodejs在linux(nas服务器)后台运行

请问,如何让Nodejs在linux(nas服务器)后台运行

现在的情况是,我用的nas服务器,打算把nodejs开发的网站放上去,可以通过ssh secure shell连线后执行node命令启动网站,但是一旦关闭连线软件后,网站就挂了。请问谁写过让nodejs在linux后台运行的脚本,求给参考下。或者给份能参考方案,感激不尽!

另:貌似在nas上执行不了npm命令,所以forever用不了……

4 回复

当然可以,以下是如何让你的Node.js应用在Linux NAS服务器上后台运行的方法。

方法一:使用nohup

nohup 是一个命令行工具,可以让程序在你断开SSH连接后继续运行。你可以通过以下步骤来实现:

  1. 使用nohup启动Node.js应用

    nohup node your-app.js &
    

    这里 your-app.js 是你的Node.js应用程序文件名。& 符号表示将该进程放到后台运行。

  2. 查看输出日志nohup 会将标准输出和标准错误输出重定向到名为 nohup.out 的文件中。你可以在当前目录下找到这个文件查看日志。

    tail -f nohup.out
    

方法二:使用screentmux

如果你希望在后台运行Node.js应用的同时还能看到它的输出,并且能够在需要时重新连接到这个会话,可以使用 screentmux

使用screen:

  1. 启动一个新的screen会话:

    screen -S mysession
    
  2. screen会话中启动你的Node.js应用:

    node your-app.js
    
  3. 分离screen会话(按Ctrl+A然后按D): 现在你已经从screen会话中分离出来了,你的Node.js应用将继续在后台运行。

  4. 重新连接到screen会话:

    screen -r mysession
    

使用tmux:

  1. 启动一个新的tmux会话:

    tmux new -s mysession
    
  2. tmux会话中启动你的Node.js应用:

    node your-app.js
    
  3. 分离tmux会话(按Ctrl+B然后按D): 你的Node.js应用将继续在后台运行。

  4. 重新连接到tmux会话:

    tmux attach -t mysession
    

这两种方法都可以让你的应用在后台持续运行,同时还能方便地查看日志和管理进程。根据你的具体需求选择合适的方法即可。


有个nohup 你查查看

普通调试 nohup node **.js & disown -h %1

要在Linux(例如NAS服务器)上让Node.js应用在后台持续运行,即使SSH会话断开也可以,你可以使用nohup命令或者screen工具来实现。

使用 nohup 命令

nohup 是一个简单的命令,它可以让进程忽略挂起(SIGHUP)信号,并将输出重定向到一个文件中。

示例:

  1. 首先确保你的Node.js应用可以在前台正常运行。
  2. 使用nohup命令启动你的Node.js应用:
    nohup node /path/to/your/app.js &
    
  3. 启动后,你会看到终端显示类似如下的信息:
    [1] 12345
    nohup: ignoring input and appending output to 'nohup.out'
    
  4. 这时,你可以关闭SSH连接,Node.js应用仍然会在后台继续运行。默认情况下,输出会被重定向到当前目录下的nohup.out文件中。

使用 screen 工具

screen 是一个全屏窗口管理器,允许你在同一个物理连接上创建多个虚拟会话。

示例:

  1. 首先确保你的系统已经安装了screen工具,通常需要通过包管理器安装(如apt-get install screenyum install screen)。
  2. 创建一个新的screen会话:
    screen -S mysession
    
  3. 在新的screen会话中启动你的Node.js应用:
    node /path/to/your/app.js
    
  4. 按下Ctrl+A然后按下D键来分离当前会话。
  5. 关闭SSH连接后,你的Node.js应用仍然在后台运行。你可以稍后重新连接到screen会话:
    screen -r mysession
    

这两种方法都可以使你的Node.js应用在后台持续运行,即便SSH连接已经断开。screen提供了更多的灵活性,比如可以重新连接到会话查看输出或操作应用。

回到顶部