1

我有以下服务,我试图在启动时运行。我制作了一个服务文件:

[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 来保持它的运行?

4

1 回答 1

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 应用程序。相当轻松和简单,但没有很好的记录。

于 2015-03-13T18:48:16.190 回答