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 ファイルに、edison のデフォルトの Linux にこれを実行し続けるように指示する何かが欠けていますか?

4

1 に答える 1

0

この回答はNode.jsの回答でのみ機能しますが、解決策(および私が行ったもの)は、ノードアプリケーションをファイルシステムの/ node_app_slotに配置し、次のpackage.jsonも/ node_app_slotに配置することでした:

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

これにより、XDK デーモンが起動時に Node アプリを取得して実行できるようになります。かなり痛みがなくシンプルですが、十分に文書化されていません。

于 2015-03-13T18:48:16.190 に答える