Linux上的systemd服务,用于Node的edison

时间:2015-02-13 17:46:39

标签: node.js linux intel-edison

我已经获得了以下我尝试在启动时运行的服务。我已经制作了服务档案:

[Unit]
Description=Denny node server start
[Service]
WorkingDirectory=/home/root
Type=forking
Restart=always
StandardOutput=syslog
User=nobody                                 
Group=nobody                                
RemainAfterExit=true                        
ExecStart=/usr/bin/node /home/root/server.js
KillMode=process          
Environment=NODE_ENV=production
[Install]                 
WantedBy=multi-user.target

我已将此删除到/ etc / systemd / system /然后我运行

systemctl daemon-reload

然后

systemctl start denny

无。没有服务器启动。好的,我检查一下:

root@denny:~# systemctl status denny

我回来了:

● denny.service - Denny node server start
   Loaded: loaded (/etc/systemd/system/denny.service; enabled)
   Active: active (exited) (Result: exit-code) since Fri 2015-02-13 17:13:21 UTC; 29min ago
 Main PID: 225 (code=exited, status=8)
   CGroup: /system.slice/denny.service

Feb 13 17:41:40 denny systemd[1]: Started Denny node server start.

我可能会记错,但似乎完全我在Debian上做了什么,它运行良好,即它保持服务运行并按照应有的方式运行。我在这个.service文件中遗漏了哪些东西会告诉默认的Linux让爱迪生继续运行吗?

1 个答案:

答案 0 :(得分:0)

这个答案仅适用于Node.js的答案,但是一个解决方案(和我一起使用的那个)是将我的节点应用程序放在文件系统的/ node_app_slot中,并在/ node_app_slot中使用以下package.json:

{
  "name": "sample",
  "description": "",
  "version": "0.0.0",
  "main": "main.js",
  "engines": {
    "node": ">=0.10.0"
  },
  "dependencies": {
  }
}

这允许XDK守护程序在启动时选择并运行Node应用程序。相当轻松,简单,但没有很好的记录。