私はサービスとして追加しようとしているノードアプリケーションを持っていますが、インストールされているディレクトリに移動すればアプリケーションはうまく動作します。node start.js
しかし、ときにsystemctl start app
はハングしますその後、journalctl -u darknet
ショー、数分間:Systemdノードアプリケーションの起動に失敗しました
Dec 24 01:46:33 Skynet systemd[1]: Started darknet.
Dec 24 01:46:33 Skynet systemd[1]: Starting darknet...
Dec 24 01:46:34 Skynet darknet[32246]: module.js:434
Dec 24 01:46:34 Skynet darknet[32246]: return process.dlopen(module, path._makeLong(filename));
Dec 24 01:46:34 Skynet darknet[32246]:^
Dec 24 01:46:34 Skynet darknet[32246]: Error: Module version mismatch. Expected 46, got 51.
Dec 24 01:46:34 Skynet darknet[32246]: at Error (native)
Dec 24 01:46:34 Skynet darknet[32246]: at Object.Module._extensions..node (module.js:434:18)
Dec 24 01:46:34 Skynet darknet[32246]: at Module.load (module.js:343:32)
Dec 24 01:46:34 Skynet darknet[32246]: at Function.Module._load (module.js:300:12)
Dec 24 01:46:34 Skynet darknet[32246]: at Module.require (module.js:353:17)
Dec 24 01:46:34 Skynet systemd[1]: darknet.service: main process exited, code=exited, status=1/FAILURE
Dec 24 01:46:34 Skynet systemd[1]: Unit darknet.service entered failed state.
Dec 24 01:46:34 Skynet systemd[1]: darknet.service failed.
これは私の.serviceファイルです:
[Unit]
Description=darknet
After=network.target
[Service]
ExecStart=/usr/bin/node /home/botty/Darknet/start.js
Restart=always
RestartSec=180
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=darknet
User=botty
Group=botty
Environment=NODE_ENV=production
WorkingDirectory=/home/botty/Darknet
[Install]
WantedBy=multi-user.target
私は、通常のユーザーとrootとして両方のプロセスを実行しようとしたん、それが正常に動作します..しかし、何があってsystemdで起動するとエラーになります。
「Unixの哲学に従って、1つのことを行い、うまくいく簡単なツールを使用するだけです」アーメン。 –