
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
NoNewPrivileges=지령. 패키지가 일반적으로 Ubuntu 16.04 시스템에서 작동한다고 가정하면 시스템이 Redis 시작 실패를 유발하는 관련 지시어 또는 redis-server
전역 설정을 사용자 정의할 수 있음을 의미합니다 .NoNewPrivileges=
NoNewPrivileges=
about 및 관련 지시문에 대해 링크된 문서를 읽은 다음 /etc/systemd/
디렉토리에서 검색하여 해당 값이 시스템에서 사용자 정의되었는지 확인하십시오. 그렇지 않은 경우 redis
설치하려는 패키지가 실제로 설치 중인 운영 체제 버전에서 지원되는지 확인하세요 .
답변2
이는 2017년 12월에 데비안 버그로 제기되었지만 서비스 수정 없이 버그가 종료되었습니다. Chris Lamb이 요청한 세부 정보가 있으면 제공해주세요.
비슷한 문제가 2017년 7월에 Debian의 MariaDB 10.1 패키지에 대해 보고되었는데, 이 패키지는 Debian에서 패키지가 제거되었을 때 수정 없이 종료되었습니다.
ㅏ로컬 수정서비스 설정을 다음과 같이 변경하는 것입니다.
NoNewPrivileges=아니요 PrivateDevices=아니요
/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
.
이것은 데비안 사용자가 생성하고 패키지하는 서비스 단위에서 systemd의 제한 메커니즘을 사용하면서 사람들이 겪었던 여러 문제 중 하나입니다. 다른 것들은 해당 설정이 런치패드 버그에서 ProtectHome=yes
기호 링크가 작동하지 않게 하고 해당 설정이 StackOverflow Q&A에서 226/NAMESPACE 오류 코드를 생성한다는 것입니다. 그만큼/home
ReadOnlyDirectories=/
현지의수정 사항은 설정 재정의가 포함된 드롭인 단위 파일인 모든 항목에 대해 동일한 형식을 취합니다.
추가 읽기
- 마우로 질리아니(2017-12-19). 코드 227/NO_NEW_PRIVILEGES로 redis-server 종료. 데비안 버그 #884764.
- 앤드류 프랑스 (2016-11-01). 16.04에서 16.10으로 업그레이드한 후 redis-server가 시작되지 않습니다.. 런치패드 버그 #1638410.
- https://stackoverflow.com/a/48496530/340790
- ozzloy palindromemordnilap (2017-07-03). NO_NEW_PRIVILEGES(systemd)로 인해 mariadb 설치가 실패합니다.. 데비안 버그 #867137.
- systemctl - 서비스 종료 코드 및 상태 정보 설명
답변3
시스템 서비스 파일에서 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
내 문제가 해결된 현재 배포 커널을 설치합니다 .