当我们需要在服务器上部署Node.js程序时,经常需要在服务器开机时自动运行我们的程序,这时候就需要创建一个开机自启动的脚本文件。下面是创建node.js开机自启动脚本文件的完整攻略:
1. 创建脚本文件
我们可以在Linux系统中执行以下命令在指定路径下创建一个脚本文件,在执行该脚本时系统会自动运行Node.js程序:
sudo touch /etc/init.d/<your-script-name>
sudo chmod +x /etc/init.d/<your-script-name>
其中,<your-script-name>
为脚本文件的名称,可以根据实际情况自行定义。
2. 编写脚本代码
打开创建的脚本文件,在其中编写启动Node.js程序的代码。例如,下面是一个简单的示例,用于启动一个Node.js服务器:
#!/bin/bash
#定义NODE_HOME环境变量
export NODE_HOME=<node.js安装路径>
#定义node程序名称
export NODE_FILE=<node.js程序文件路径>
#定义node程序名称
export NODE_APP=<node.js应用程序文件路径>
case $1 in
start)
echo "Starting <your-script-name> ..."
cd $NODE_APP
#使用node启动程序
nohup $NODE_HOME/bin/node $NODE_FILE &
;;
stop)
echo "Stopping <your-script-name> ..."
#查找node进程的PID,并kill它
pid=$(ps aux | grep $NODE_APP/$NODE_FILE | grep -v grep | awk '{print $2}')
kill $pid
;;
restart)
echo "Restarting <your-script-name> ..."
$0 stop
sleep 1s
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
3. 添加服务至系统服务列表
将脚本文件加入系统服务列表中,输入以下命令:
sudo update-rc.d <your-script-name> defaults
至此,已经成功将脚本添加至系统服务,系统会在开机时自动调用该脚本文件。
示例1
需求
在开机时自动启动Node.js应用程序,端口为8000,程序文件在/home/ubuntu/app/index.js
。
创建脚本
执行以下命令创建一个名为auto_start_app
的脚本文件:
sudo touch /etc/init.d/auto_start_app
sudo chmod +x /etc/init.d/auto_start_app
编写脚本
打开auto_start_app
脚本文件,粘贴以下代码:
#!/bin/bash
#定义node.js安装路径
export NODE_HOME=/usr/local/nodejs
#定义node.js应用程序路径
export NODE_APP=/home/ubuntu/app
case $1 in
start)
echo "Starting application ..."
cd $NODE_APP
nohup $NODE_HOME/bin/node index.js >/dev/null 2>&1 &
;;
stop)
echo "Stopping application ..."
pid=$(ps aux | grep $NODE_APP/index.js | grep -v grep | awk '{print $2}')
kill $pid
;;
restart)
echo "Restarting application ..."
$0 stop
sleep 1s
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
将脚本加入系统服务列表
sudo update-rc.d auto_start_app defaults
至此,该Node.js应用程序将会在开机时自动启动。
示例2
需求
在开机时自动启动一个实时聊天的Node.js程序,端口为3000,程序文件在/home/ubuntu/chat/index.js
。
创建脚本
执行以下命令创建一个名为auto_start_chat
的脚本文件:
sudo touch /etc/init.d/auto_start_chat
sudo chmod +x /etc/init.d/auto_start_chat
编写脚本
打开auto_start_chat
脚本文件,粘贴以下代码:
#!/bin/bash
#定义node.js安装路径
export NODE_HOME=/usr/local/nodejs
#定义node.js应用程序路径
export NODE_APP=/home/ubuntu/chat
case $1 in
start)
echo "Starting chat server ..."
cd $NODE_APP
nohup $NODE_HOME/bin/node index.js >/dev/null 2>&1 &
;;
stop)
echo "Stopping chat server ..."
pid=$(ps aux | grep $NODE_APP/index.js | grep -v grep | awk '{print $2}')
kill $pid
;;
restart)
echo "Restarting chat server ..."
$0 stop
sleep 1s
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
将脚本加入系统服务列表
sudo update-rc.d auto_start_chat defaults
至此,该实时聊天程序将会在开机时自动启动,在开发实时应用中十分方便。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node.js开机自启动脚本文件 - Python技术站