추가 읽기

추가 읽기

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설정을 시도 yes하고 다시 로드한 후 다시 시작해 보았지만 운이 좋지 않았습니다. 동일한 오류가 발생했습니다. 나는 달리기를 통해 도움이 될 수 있는 또 다른 메시지를 발견했다는 사실을 발견했습니다.noredis.servicejournalctl -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 오류 코드가 생성된다는 것입니다. 이것현지의수정 사항은 모든 항목에 대해 동일한 형식을 취합니다. 즉, 설정이 재정의된 포함된 단위 파일입니다.

추가 읽기

답변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문제를 해결했습니다.

관련 정보