Debian Stretch 시스템에 GitLab 커뮤니티 팩을 설치하려고 하는데 redis-server
systemd를 사용하여 서비스를 시작할 때 해당 종속성 중 하나가 설치되지 않습니다.
전체 로그:
$ sudo dpkg --configure redis-server
Setting up redis-server (3:3.2.5-4) ...
Job for redis-server.service failed because the control process exited with error code.
See "systemctl status redis-server.service" and "journalctl -xe" for details.
invoke-rc.d: initscript redis-server, action "start" failed.
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Thu 2016-12-15 15:00:17 UTC; 31ms ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Process: 8764 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=227/NO_NEW_PRIVILEGES)
Process: 8761 ExecStartPre=/bin/run-parts --verbose /etc/redis/redis-server.pre-up.d (code=exited, status=227/NO_NEW_PRIVILEGES)
Main PID: 24283 (code=exited, status=227/NO_NEW_PRIVILEGES)
Dec 15 15:00:17 Serverdatorn-Debian systemd[1]: redis-server.service: Unit entered failed state.
Dec 15 15:00:17 Serverdatorn-Debian systemd[1]: redis-server.service: Failed with result 'exit-code'.
dpkg: error processing package redis-server (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
redis-server
실행 파일을 수동으로 실행하여 redis-server를 시작하면 정상적으로 작동합니다.
$ sudo /usr/bin/redis-server /etc/redis/redis.conf
$ sudo tail /var/log/redis/redis-server.log
...
* The server is now ready to accept connections on port 6379
추가 정보가 필요하시면 알려주시기 바랍니다.
편집하다:
파일에서 및 NoNewPrivileges
설정을 시도 yes
하고 다시 로드한 후 다시 시작해 보았지만 운이 좋지 않았습니다. 동일한 오류가 발생했습니다. 나는 달리기를 통해 도움이 될 수 있는 또 다른 메시지를 발견했다는 사실을 발견했습니다.no
redis.service
journalctl -xe
redis-server.service: Failed at step NO_NEW_PRIVILEGES spawning /usr/bin/redis-server: Invalid argument
답변1
아마 당신도 이런 결과를 경험하고 있을 것 같아요systemd
새로운 권한 없음 =지시하다. 이 redis-server
패키지가 Ubuntu 16.04 시스템에서 일반적으로 사용 가능하다고 가정하면 이는 시스템이 NoNewPrivileges=
Redis 시작 실패를 유발하는 전역 설정 또는 관련 지침을 사용자 정의할 수 있음을 나타냅니다.
NoNewPrivileges=
about 및 관련 지시어에 링크된 문서를 읽은 다음 /etc/systemd/
디렉터리에서 검색하여 이러한 값이 시스템에서 사용자 정의되었는지 확인하세요. 그렇지 않은 경우 redis
설치하려는 패키지가 설치 중인 운영 체제 버전에서 실제로 지원되는지 확인하십시오.
답변2
이 문제는 2017년 12월 Debian 버그로 제기되었지만 서비스 수정 없이 버그가 종료되었습니다. Chris Lamb이 요청한 세부정보가 있는 경우 제공해주세요.
비슷한 문제가 2017년 7월 Debian용 MariaDB 10.1 패키지에서 보고되었으며 패키지가 Debian에서 제거되었을 때 닫혀 수정되지 않았습니다.
ㅏ로컬 수정서비스 설정을 다음으로 변경하는 것입니다.
새로운 권한 없음 = 아니요 개인 장치 = 아니요
/etc/systemd/system/redis.service
편집 하거나 직접적으로 말하지 마십시오 /usr/lib/systemd/system/redis-server.service
. 후자는 로컬 관리자가 수동으로 편집해서는 안 되며, 전자는 데비안 패키지와 함께 제공되는 실제 서비스 단위 파일이 아닙니다.
대신 systemctl edit redis.service
다음을 사용하여 만듭니다 .유닛 삽입 파일그리고 거기에 설정을 넣어주세요. 이는 또한 daemon-reload
유닛 파일을 수동으로 수정하려는 경우 수동으로 수행해야 하는 작업을 암시적으로 수행합니다.
소스 패키지에서 찾으려는 경우: 패키지된 파일 redis.service
과 [email protected]
파일은 Debian 프로그램이라는 데비안 프로그램에 의해 생성됩니다.generate-systemd-service-files
.
이것은 데비안 사람들이 만들고 패키징한 서비스 단위에서 시스템 조절 메커니즘을 사용할 때 사람들이 직면하는 여러 문제 중 하나입니다. 다른 문제는 해당 ProtectHome=yes
설정 /home
으로 인해 실행 패드 오류 시 심볼릭 링크가 작동 하지 못하고 ReadOnlyDirectories=/
StackOverflow Q&A에서 해당 설정으로 인해 226/NAMESPACE 오류 코드가 생성된다는 것입니다. 이것현지의수정 사항은 모든 항목에 대해 동일한 형식을 취합니다. 즉, 설정이 재정의된 포함된 단위 파일입니다.
추가 읽기
- 마우로 질리아니(2017-12-19). redis-server가 코드 227/NO_NEW_PRIVILEGES로 종료되었습니다.. 데비안 버그 #884764.
- 앤드류 프렌치(2016-11-01). 16.04에서 16.10으로 업그레이드한 후 redis-server를 시작할 수 없습니다.. 런치패드 버그 #1638410.
- https://stackoverflow.com/a/48496530/340790
- 오즐로이 회문(2017-07-03). NO_NEW_PRIVILEGES(systemd)로 인해 mariadb 설치가 실패합니다.. 데비안 버그 #867137.
- systemctl - 서비스 종료 코드 및 상태 정보 설명
답변3
제대로 작동하도록 하려면 systemd 서비스 파일에서 PrivateDevices=false를 설정할 수 있습니다.
답변4
내 경우에는 이전 Debian 버전의 이전 Linux 커널을 실행 중이었고 여러 서비스가 "(code=exited, status=227/NO_NEW_PRIVILEGES)" 오류로 시작되지 못했습니다. 예를 들어:
ExecStart=/lib/systemd/systemd-logind (code=exited, status=227/NO_NEW_PRIVILEGES)
현재 배포 커널을 설치하고 sudo apt-get install linux-image-amd64 && reboot
문제를 해결했습니다.