使用Systemd在Ubuntu VM中在后台运行节点应用程序

时间:2015-08-21 01:13:36

标签: linux node.js ubuntu ghost-blog systemd

尝试使用Google Compute Engine提供的Ubuntu 15.04 VM中的systemd设置恶魔进程,以便在后台运行ghost博客平台。

到目前为止,我的服务脚本如下:

[Service]
ExecStart=/usr/bin/node /home/blog/index.js
Restart=always
StandardOutput=syslog
StandardError=syslog
RestartSec=120s
SyslogIdentifier=blog-service
User=user
Group=user
Environment=NODE_ENV=production PORT=5000
[Install]
WantedBy=multi-user.target

启动服务后,检查我得到的状态:

blog.service
   Loaded: loaded (/etc/systemd/system/blog.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) since Fri 2015-08-21 01:04:01 UTC; 42s ago
  Process: 3455 ExecStart=/usr/bin/node /home/blog/index.js (code=exited, status=0/SUCCESS)
 Main PID: 3455 (code=exited, status=0/SUCCESS)

我不明白为什么会得到(code = exited,status = 0 / SUCCESS),如果我手动运行节点index.js一切正常。如何让我的项目在后台正常运行?

2 个答案:

答案 0 :(得分:1)

解决方案是在服务脚本上添加参数Type=forking。看起来无法运行节点Web服务器,而无需向系统创建子进程。

答案 1 :(得分:0)

status = 0 / SUCCESS意味着一切顺利,检查服务是否正在运行?