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)) 대신 실제 계정을 사용하는 대신(대신 시스템 사용자를 생성하는) 제안일 수 있습니다. ).