추가 읽기

추가 읽기

Debian Stretch 시스템에 GitLab 커뮤니티 패키지를 설치하려고 하는데 redis-serversystemd를 사용하여 서비스를 시작할 때 해당 종속성 중 하나인 가 설치되지 않습니다.

전체 로그:

$ 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모두에 설정 을 시도하고 다시 로드하고 다시 시작했지만 운이 좋지 않았습니다. 동일한 오류가 발생했습니다. 실행 중 도움이 될 수 있는 또 다른 메시지가 표시되는 것을 발견했습니다 .yesnoredis.servicejournalctl -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 오류 코드를 생성한다는 것입니다. 그만큼/homeReadOnlyDirectories=/현지의수정 사항은 설정 재정의가 포함된 드롭인 단위 파일인 모든 항목에 대해 동일한 형식을 취합니다.

추가 읽기

답변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내 문제가 해결된 현재 배포 커널을 설치합니다 .

관련 정보