Debian 8.6でサービスを作成しましたが、serviceコマンドを使用してサービスを開始しようとするとエラーが発生します。
私はこれを試しましたが、systemctl daemon-reload
まだ同じ結果を得ます。
$ sudo service cloud9 start
$ sudo service cloud9 status
● cloud9.service - cloud9
Loaded: loaded (/etc/systemd/system/cloud9.service; enabled)
Active: failed (Result: start-limit) since Thu 2016-10-13 07:21:02 UTC; 2s ago
Process: 2610 ExecStart=/opt/bitnami/nodejs/bin/node /home/user/c9sdk/server.js -w /home/user -l 0.0.0.0 -a admin:admin (code=exited, status=216/GROUP)
Main PID: 2610 (code=exited, status=216/GROUP)
Oct 13 07:21:02 test-vm systemd[1]: cloud9.service: main process exited, code=exited, status=216/GROUP
Oct 13 07:21:02 test-vm systemd[1]: Unit cloud9.service entered failed state.
Oct 13 07:21:02 test-vm systemd[1]: cloud9.service holdoff time over, scheduling restart.
Oct 13 07:21:02 test-vm systemd[1]: Stopping cloud9...
Oct 13 07:21:02 test-vm systemd[1]: Starting cloud9...
Oct 13 07:21:02 test-vm systemd[1]: cloud9.service start request repeated too quickly, refusing to start.
Oct 13 07:21:02 test-vm systemd[1]: Failed to start cloud9.
Oct 13 07:21:02 test-vm systemd[1]: Unit cloud9.service entered failed state.
設定は次の場所にあります/etc/systemd/system/cloud9.service
。
[Unit]
Description=cloud9
[Service]
ExecStart=/opt/bitnami/nodejs/bin/node /home/user/c9sdk/server.js -w /home/user -l 0.0.0.0 -a admin:admin
Restart=always
User=nobody
Group=nobody
Environment=PATH=/bin:/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/home/user/c9sdk
[Install]
WantedBy=multi-user.target
答え1
2610 ExecStart=/opt/bitnami/nodejs/bin/node /home/user/c9sdk/server.js -w /home/user -l 0.0.0.0 -a admin:admin (コード=終了、ステータス=216/GROUP ) … 10月13日 07:21:02 test-vm systemd[1]: cloud9.service: 基本プロセスが終了しました、コード=終了、ステータス=216/GROUP
...問題を説明します。あなたのグループはnobody
システムで有効なグループではありません。有効なグループを指定してください。
環境=PATH=/bin:/usr/bin:/usr/local/bin
これは必要ないかもしれません。
-w /ホーム/ユーザー -l 0.0.0.0
より良い世界では、ここのcloud9サービスプログラムは、リスニングソケットを開いたファイル記述子として受け取り、対応する作業ディレクトリを継承します。持つデバイスの他の場所に明示的に設定されています)
追加読書
答え2
再起動パラメータを削除して有効なユーザー/グループを追加すると、問題を解決するのに役立ちました。
[Unit]
Description=cloud9
[Service]
ExecStart=/opt/bitnami/nodejs/bin/node /home/user/c9sdk/server.js -w /home/user -l 0.0.0.0 -a admin:admin
User=user
Group=group
Environment=PATH=/bin:/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/home/user/c9sdk
[Install]
WantedBy=multi-user.target
答え3
User=設定を使用している場合は、グループを設定する必要はありません(ユーザーのデフォルトグループに設定されるため)。
DynamicUser = yesは、サービス環境にのみ存在する存在しないユーザーとしてサービスを実行するnone user(systemd.exec(8))の代わりに実際のアカウントを使用する代わりに(代わりにシステムユーザーを作成する)提案です。 )。