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 是启动命令,RestartRestartSec 分别定义了服务崩溃后重启策略和重启间隔时间。
  • [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

  1. 创建一个 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
  1. 启用并启动服务:
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 则更为简单直接。选择适合你需求的方法进行配置即可。

回到顶部