설치시 서비스가 시작되지 않는 이유는 무엇입니까?


23

나는 이것을 언젠가 보았지만 policy-rc.ddpkg / apt에 의해 호출 될 때 서비스가 시작 / 재시작 / 중지되는 것을 막는 이 독특한 바이너리 에 대해 우분투 남자에서 아무것도 찾지 못했기 때문에 그 이유가 무엇인지 알고 싶습니다.

Setting up lxc (0.9.0-0ubuntu3.6) ...
invoke-rc.d: policy-rc.d denied execution of start.
invoke-rc.d: policy-rc.d denied execution of start.
invoke-rc.d: policy-rc.d denied execution of start.

분명히이 바이너리를 소유 한 패키지는 없습니다 :

dpkg -S /usr/sbin/policy-rc.d
dpkg-query: no path found matching pattern /usr/sbin/policy-rc.d

답변:


31

이 "스크립트"는 sysv-rc패키지에 포함되어 있습니다. 이것은 데비안 정책의 일부로 sysadmins가 패키지를 설치 / 업그레이드 / 제거 할 때마다 어떤 서비스가 시작 / 재판매 / 중지되는지 제어 할 수 있도록합니다.

POLICY-RC.D 정책 계층 (/usr/sbin/policy-rc.d) 인터페이스 :

대부분의 데비안 시스템은 정책 레이어가 필요하지 않기 때문에이 스크립트를 가지고 있지 않습니다. chroot jails를 사용하는 대부분의 사람들은 한 줄짜리 스크립트 만 있으면 jailed /usr/sbin/policy-rc.d 스크립트로 종료 상태 101을 반환합니다.

/usr/sbin/policy-rc.d 파일 파일을 제공하는 패키지로 대체 시스템 (/ usr / sbin / update-alternatives)을 통해 관리 해야 합니다.

/usr/sbin/policy-rc.d [옵션] []

/usr/sbin/policy-rc.d [옵션]-목록 [...]

( 소스 )

그래서 여기서는 어떻게 되나요? 이 스크립트가 존재할 때마다 로컬 시스템의 현재 정책을 나타내는 코드를 반환합니다 (기본적 101으로 정책에 의해 금지 된 동작입니다). 정책을 변경하려면 파일을 다음 값 중 하나의 루트로 수정하십시오.

  0 - action allowed
  1 - unknown action (therefore, undefined policy)
 100 - unknown initscript id
 101 - action forbidden by policy
 102 - subsystem error
 103 - syntax error
 104 - [reserved]
 105 - behaviour uncertain, policy undefined.
 106 - action not allowed. Use the returned fallback actions
       (which are implied to be "allowed") instead. 

스크립트는 여전히 자리 표시 자이지만 완료되면이 값이 모두 반환 될 수 있습니다. 당신은 어떤 변화가 단지 변경 허용 할 경우 exit 101에 대한 exit 0및 수행. 서비스를 설치 / 제거 / 업그레이드 할 때마다 서비스가 시작 / 중지됩니다.


6
Docker 이미지는 수정되었습니다exit 101 # For most Docker users, "apt-get install" only happens during "docker build", # where starting services doesn't work and often fails in humorous ways. This # prevents those failures by stopping the services from attempting to start.
Tjorriemorrie

2
@Tjorriemorrie 좀 더 자세히 설명해 주시겠습니까? 고정 표시기 이미지를 구축 할 때 나는이 문제가 발생하고 나는 그것을 고칠 수없는 것 같다
조니 꽃



@Bigood : 최근 master분기 에서 줄 번호가 변경되었습니다 . 다음은 [docker 's source ( github.com/moby/moby/blob/v17.05.0-ce/contrib/mkimage/… ) 의 라인에 대한 영구 링크 입니다.
Hosam Aly
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.