使用systemd启动nodejs服务
2017-12-11 本文已影响646人
殷临风
刚开始接触nodejs
的开发者, 会遇到一个很头疼的问题, nodejs程序很容易崩溃, 这个原因大部分是程序的异常没有进行捕获处理, 但是我们有时候不能提前识别所有异常. 对于j2ee
来讲, 就算我们程序异常了, 绝大部分情况是不会让tomcat
崩溃的, 那么nodejs这个问题怎么解决了. 一般情况会使用supervisor
或pm2
来管理, 这里介绍另一种, 通过系统的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