×

使用systemd启动nodejs服务

96
殷临风
2017.12.11 11:53* 字数 267

刚开始接触nodejs的开发者, 会遇到一个很头疼的问题, nodejs程序很容易崩溃, 这个原因大部分是程序的异常没有进行捕获处理, 但是我们有时候不能提前识别所有异常. 对于j2ee来讲, 就算我们程序异常了, 绝大部分情况是不会让tomcat崩溃的, 那么nodejs这个问题怎么解决了. 一般情况会使用supervisorpm2来管理, 这里介绍另一种, 通过系统的systemd来启动nodejs程序

systemd 存在于centos7, ubuntu15.04以上的版本, 所以如果大家的系统版本比较低, 就不能使用这种方式

1. 创建配置文件
cd /etc/systemd/system
vi myproject.service
#########################################
[Unit]
Description=node simple server

[Service]
ExecStart=/usr/bin/node /mnt/node_src/myproject/index.js
Restart=always
User=nobody
Group=nobody
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/mnt/node_src/myproject/

[Install]
WantedBy=multi-user.target
#########################################

ExecStart: 指定执行命令的路径及项目的文件
Restart: 是否重启, 从而保证挂了可以自动启动
User/Group: 执行的用户和用户组, 也可以使用数字标记
Environment: 环境变量
WorkingDirectory: 工作目录

2. 保存配置并启动
# 重载配置文件
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start myproject
# 查看服务状态
systemctl status myproject
3. 如果想设为开机启动
sudo systemctl enable myproject
Nodejs
Web note ad 1