Nodejs 在linux下如何绑定开机自启动
Nodejs 在linux下如何绑定开机自启动
主要是为了,可以开机自启动,然后,关闭终端,也可以在后台不断运行。
Node.js 在 Linux 下如何绑定开机自启动
在 Linux 系统中,确保 Node.js 应用程序在系统启动时自动运行,并且即使关闭终端也能在后台持续运行,可以通过配置 systemd
服务来实现。以下是详细的步骤和示例代码。
步骤 1: 创建一个 Systemd 服务文件
首先,在 /etc/systemd/system/
目录下创建一个新的服务文件。假设你的 Node.js 应用程序位于 /opt/myapp/app.js
,你可以创建一个名为 myapp.service
的服务文件。
sudo nano /etc/systemd/system/myapp.service
在文件中添加以下内容:
[Unit]
Description=My Node.js Application
After=network.target
[Service]
User=yourusername
ExecStart=/usr/bin/node /opt/myapp/app.js
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=myapp
[Install]
WantedBy=multi-user.target
解释
- [Unit] 部分定义了服务的描述以及它应该在哪个目标之后启动(这里是在网络服务之后)。
- [Service] 部分定义了如何运行该服务。
User
指定了运行应用程序的用户,ExecStart
指定了启动应用程序的命令,Restart
设置为always
表示如果应用程序崩溃,会自动重启。 - [Install] 部分定义了当启用此服务时的目标。
WantedBy=multi-user.target
表示在多用户模式下启动。
步骤 2: 启用并启动服务
保存并退出编辑器后,使用以下命令启用并启动服务:
sudo systemctl enable myapp.service
sudo systemctl start myapp.service
这将使服务在每次系统启动时自动启动,并立即启动当前会话中的服务。
步骤 3: 查看服务状态
你可以通过以下命令查看服务的状态:
sudo systemctl status myapp.service
如果一切正常,你应该能看到类似 “active (running)” 的信息。
通过以上步骤,你就可以确保你的 Node.js 应用程序在系统启动时自动运行,并且即使关闭终端也能在后台持续运行。
service
可以試試看 forever ,寫一個 init script 讓開機的時候跑你的 service https://github.com/nodejitsu/forever
forever的日志,我已经用tracer代替了,所以。直接用最简单的命令。nohup supervisor app.js & 就好了。
类似楼上, 写成 supervisor 的应用… 也许有更好的方案
我是用forever,再设置chkconfig,具体可见http://angularjs.cn/A00X
要在Linux系统下让Node.js应用实现开机自启动并能在后台持续运行,你可以通过创建一个Systemd服务或者使用crontab
来实现。以下是两种方法的简要介绍和示例。
方法一:使用Systemd
-
创建一个Systemd服务文件: 在
/etc/systemd/system/
目录下创建一个新的服务文件,例如nodeapp.service
。文件内容如下:[Unit] Description=Node.js Application After=network.target [Service] User=<your-username> ExecStart=/usr/bin/node /path/to/your/app.js Restart=always [Install] WantedBy=multi-user.target
将
<your-username>
替换为你的用户名,并将/path/to/your/app.js
替换为你的Node.js应用程序的实际路径。 -
重新加载Systemd配置并启用服务:
sudo systemctl daemon-reload sudo systemctl enable nodeapp.service sudo systemctl start nodeapp.service
方法二:使用crontab
-
编辑当前用户的
crontab
文件:crontab -e
-
添加一行以使程序在开机时启动:
[@reboot](/user/reboot) /usr/bin/node /path/to/your/app.js &
同样地,将
/path/to/your/app.js
替换为你的Node.js应用程序的实际路径。
这两种方法都能让你的Node.js应用在系统重启后自动启动,并且在后台运行。使用Systemd更为现代和灵活,而crontab
则更加简单直接。根据你的需求选择合适的方法即可。