web-dev-qa-db-ja.com

systemd-カスタムサービスがステータスコード216 / GROUPで終了します

Nodejs Expressサーバー用に次のユニットファイルをインストールしました。

 [Unit]
 Description=Server for SpeedBot
 After=network.target

 [Service]
 ExecStart=/var/www/SpeedBot/server.js
 Restart=always
 User=nobody
 Group=nobody
 Environment=PATH=/usr/bin:/usr/local/bin
 Environment=NODE_ENV=production
 WorkingDirectory=/home/pi/SpeedBot/server.js

 [Install]
 WantedBy=multi-user.target

私がそれを実行して行うとき:service speedbotserver status取得:

● speedbotserver.service - Server for SpeedBot
   Loaded: loaded (/etc/systemd/system/speedbotserver.service; disabled)
   Active: failed (Result: start-limit) since Thu 2017-06-29 01:31:18 UTC; 18h ago 
  Process: 19189 ExecStart=/var/www/SpeedBot/server.js (code=exited, status=216/GROUP)
 Main PID: 19189 (code=exited, status=216/GROUP)
3
medicengonzo

Group = nobody

エラーメッセージで、サービスの実行に使用しているグループの設定に問題があることが通知された場合(つまり、ステータスコードが実行していること)は、「このサービスに有効なグループを構成しましたか?」

ところで、nobodyとしてサービスを実行しないでください。これは、1990年代に世界がやらないことを学んだ悪い考えです。 nobodyにはNFSに関連する特定の使用法があります。これは、NFSがファイルシステム内の(おそらく多くの)ものの(見かけの)所有者であることを意味します。これはデーモンプロセスの実行には適していません。そのユーザーアカウントは、一般に、ファイルシステム内で操作に直接関連する限られたものしか所有してはなりません。

サービスに固有の専用ユーザーアカウントとしてサービスを実行します。

参考文献

4
JdeBP

以下のユニット構成で試すことができます:

 [Unit]
 Description=Server for SpeedBot
 After=network.target

 [Service]
  ExecStart=/bin/sh -c "exec /usr/bin/node /var/www/SpeedBot/server.js"
  Restart=always
  User=nobody
  Group=nobody
  Environment=PATH=/usr/bin:/usr/local/bin
  Environment=NODE_ENV=production
  WorkingDirectory=/var/www/SpeedBot

 [Install]
 WantedBy=multi-user.target
0
Sourav

Group=nobodyグループはユーザーと同じである必要があります。 SonarQubeのユーザーを作成していない場合は、まずそれを作成します。

ここをクリック 詳細については、ステップバイステップのガイドラインに従ってください

ソナーユーザーとして実行するには、SonarQubeを構成する必要があります。これは、次のコマンドで実行できます。

Sudo nano /opt/sonarqube/bin/linux-x86-64/sonar.sh

次の変更を行います。

RUN_AS_USER=sonar

ファイルを保存して閉じ、このユーザーをサービスプロパティに使用する

0
Hemant