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)
Group = nobody
エラーメッセージで、サービスの実行に使用しているグループの設定に問題があることが通知された場合(つまり、ステータスコードが実行していること)は、「このサービスに有効なグループを構成しましたか?」
ところで、nobody
としてサービスを実行しないでください。これは、1990年代に世界がやらないことを学んだ悪い考えです。 nobody
にはNFSに関連する特定の使用法があります。これは、NFSがファイルシステム内の(おそらく多くの)ものの(見かけの)所有者であることを意味します。これはデーモンプロセスの実行には適していません。そのユーザーアカウントは、一般に、ファイルシステム内で操作に直接関連する限られたものしか所有してはなりません。
サービスに固有の専用ユーザーアカウントとしてサービスを実行します。
以下のユニット構成で試すことができます:
[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
Group=nobody
グループはユーザーと同じである必要があります。 SonarQubeのユーザーを作成していない場合は、まずそれを作成します。
ここをクリック 詳細については、ステップバイステップのガイドラインに従ってください
ソナーユーザーとして実行するには、SonarQubeを構成する必要があります。これは、次のコマンドで実行できます。
Sudo nano /opt/sonarqube/bin/linux-x86-64/sonar.sh
次の変更を行います。
RUN_AS_USER=sonar
ファイルを保存して閉じ、このユーザーをサービスプロパティに使用する