Nodejs forever 如何开机启动脚本
Nodejs forever 如何开机启动脚本
forever 如何开机启动脚本??? 求高手解答
4 回复
Node.js Forever 开机启动脚本
在Linux系统中,如果你希望在系统启动时自动运行一个使用forever
管理的Node.js应用,可以通过创建一个Systemd服务来实现。以下是一个详细的步骤和示例代码,帮助你完成这一任务。
步骤1: 创建一个Systemd服务文件
首先,你需要创建一个Systemd服务文件。假设你的Node.js应用位于/home/user/myapp/app.js
,并且你想将它命名为myapp.service
。你可以通过以下命令创建该文件:
sudo nano /etc/systemd/system/myapp.service
步骤2: 编辑服务文件
接下来,你需要编辑这个服务文件,并添加以下内容:
[Unit]
Description=My Node.js Application
After=network.target
[Service]
User=user
ExecStart=/usr/local/bin/forever start /home/user/myapp/app.js
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
解释:
[Unit]
部分定义了服务的基本信息,如描述和依赖项。[Service]
部分定义了如何启动和管理服务。User
指定了运行服务的用户,ExecStart
是启动命令,Restart
和RestartSec
分别定义了服务崩溃后重启策略和重启间隔时间。[Install]
部分定义了在哪个运行级别下安装此服务。
步骤3: 启用并启动服务
保存并关闭文件后,你可以启用并启动该服务:
sudo systemctl enable myapp.service
sudo systemctl start myapp.service
步骤4: 检查服务状态
你可以通过以下命令检查服务的状态:
sudo systemctl status myapp.service
如果一切正常,你应该能看到服务正在运行的信息。
总结
通过创建一个Systemd服务文件并配置它,你可以确保你的Node.js应用在系统启动时自动运行。这种方式不仅方便,而且提供了良好的错误恢复机制。希望这些步骤对你有所帮助!
#!/bin/bash
#
# node Start up node server daemon
#
# chkconfig: 345 85 15
# description: Forever for Node.js
#
#PATH=/home/node/0.8.9/bin
#DEAMON=/home/ftp/1520/weizt-20120918-tKx/weizt.com/app.js
DEAMON=/alidata1/project/mrs/mrs-dev/app.js
LOG=/alidata1/project/mrs/mrs-dev/logs
PID=/tmp/forever.pid
case "$1" in
start)
forever start -l $LOG/forever.log -o $LOG/forever_out.log -e $LOG/forever_err.log --pidFile $PID -a $DEAMON
;;
stop)
forever stop --pidFile $PID $DEAMON
;;
stopall)
forever stopall --pidFile $PID
;;
restartall)
forever restartall --pidFile $PID
;;
reload|restart)
forever restart -l $LOG/forever.log -o $LOG/forever_out.log -e $LOG/forever_err.log --pidFile $PID -a $DEAMON
;;
list)
forever list
;;
*)
echo "Usage: /etc.init.d/node {start|stop|restart|reload|stopall|restartall|list}"
exit 1
;;
esac
exit 0
仅供参考
谢谢,搞定了
要在系统启动时自动运行一个使用 forever
管理的 Node.js 脚本,可以创建一个 Systemd 服务或使用 Crontab。下面是两种方法的简要说明和示例。
使用 Systemd
- 创建一个 Systemd 服务文件
/etc/systemd/system/my-node-app.service
:
[Unit]
Description=My Node.js Application
[Service]
ExecStart=/usr/local/bin/forever start /path/to/your/app.js
Restart=always
User=your-username
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/path/to/your/app
[Install]
WantedBy=multi-user.target
- 启用并启动服务:
sudo systemctl enable my-node-app.service
sudo systemctl start my-node-app.service
使用 Crontab
编辑 crontab 文件:
crontab -e
添加以下行:
@reboot /usr/local/bin/forever start /path/to/your/app.js
这两种方法都可以实现开机启动你的 Node.js 应用。Systemd 方法更现代,且提供了更多的配置选项;而 Crontab 则更为简单直接。选择适合你需求的方法进行配置即可。