추가 읽기

추가 읽기

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)

답변1

그룹=아무도 없음

서비스가 실행되는 그룹(상태 코드가 수행하는 작업)을 설정하는 데 문제가 있다는 오류 메시지가 표시되면 먼저 "이 서비스에 대해 유효한 그룹을 구성했습니까?"라고 생각해야 합니다.

nobody그런데 서비스를 . 이것은 나쁜 생각이고, 세상은 1990년대에 그렇게 하지 않는 법을 배웠습니다. nobodyNFS와 관련된 특정 용도가 있습니다. 즉, 파일 시스템에 있는 (잠재적으로 많은) 항목의 (명백한) 소유자임을 의미합니다. 일반적으로 사용자 계정이 해당 작업과 직접적으로 관련된 파일 시스템 내용의 제한된 양만 소유하는 데몬을 실행하는 데는 적합하지 않습니다.

전용 서비스별 사용자 계정으로 서비스를 실행하세요.

추가 읽기

답변2

Group=nobody그룹은 사용자와 동일해야 합니다. 아직 SonarQube 사용자를 생성하지 않았다면 먼저 생성하세요.

여기를 클릭하세요자세한 내용은 단계별 가이드를 따르세요.

Sonar 사용자로 실행하려면 SonarQube를 구성해야 합니다. 이 작업을 수행하려면 다음 명령을 사용할 수 있습니다.

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

다음과 같이 변경합니다.

RUN_AS_USER=sonar

파일을 저장하고 닫은 다음 해당 사용자를 사용하여 서비스 속성에 액세스하십시오.

답변3

다음 장치 구성을 사용해 볼 수 있습니다.

 [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

관련 정보