私はCloud9をDebianのサービスとして設定することで、実行中のCloud9を自動化しようとしています。このエラーは私を止めます:
$ Sudo service cloud9 start
Failed to start cloud9.service: Unit cloud9.service failed to load: Invalid argument. See system logs and 'systemctl status cloud9.service' for details.
systemctl status cloud9.service
出力:
$ systemctl status cloud9.service
● cloud9.service - cloud9
Loaded: error (Reason: Invalid argument)
Active: inactive (dead)
たぶん、作成したばかりの/etc/systemd/system/cloud9.service
の設定ミスが原因です。
[Unit]
Description=cloud9
[Service]
ExecStart=node server.js -w /home/user -l 0.0.0.0 -a admin:admin
Restart=always
User=nobody
Group=nobody
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/home/user/c9sdk
[Install]
WantedBy=multi-user.target
サービスの簡単な起動スクリプトを作成するにはどうすればよいですか?
あなたの最初の手がかりは、診断がsystemctl status cloud9.service
の出力をチェックするように言ったということですが、それを実行したり、その出力を共有したりすることについては触れませんでした。
多分それはあなたが渡すバイナリがExecStart=
へのパスが絶対でなければならないことをあなたに告げるでしょう。
通常、ここでの「無効な引数」は、ユニット定義ファイル自体です。それをデバッグするには、次を使用できます。
Sudo systemd-analyze verify cloud9.service
またはユーザーのローカルサービスの場合:
Sudo systemd-analyze --user verify cloud9.service