구성 패키지를 작성 중이며 구성이 영향을받는 서비스를 중지했다가 다시 시작하고 싶습니다. 지금 내가 사용하고 service [stop|restart]
에 {pre,post}{inst,rm}
방법. 나는 질문 어딘가에서 읽은 invoke-rc.d
는 IS 바로 그것이 서비스에 대해 사용자 환경 설정을 존중하기 때문에, 방법. 그러나 이에 대한 지침을 찾지 못했습니다. 누구든지 그러한 지침을 알고 있습니까? 아니면 어떤 방법을 선택해야하는지 조언이 있습니까? 이 패키지는 내부 용으로 향후 2 년 동안 14.04 일 것입니다. 그러나 나는 내 후계자를 위해 가능한 한 깨끗한 상태를 유지하고 싶습니다 systemd
. 내 마음도 마찬가지입니다.
로부터 invoke-rc.d
man 페이지 :
데비안 패키지의 관리자 스크립트에 의한 init 스크립트에 대한 모든 액세스는 invoke-rc.d를 통해 이루어져야합니다 .
데비안 정책 매뉴얼 9 장 3.3 절 :
관리자는 update-rc.d 및 invoke-rc.d 프로그램에서 제공하는 추상화 계층을 사용하여 postinst, prerm 및 postrm과 같은 패키지 스크립트의 initscript를 처리해야합니다.
...
패키지 관리자 스크립트는 직접 호출하는 대신 invoke-rc.d를 사용하여 /etc/init.d/* 초기화 스크립트를 호출해야합니다.
데비안은 이미 사용 sysv-init
중이며로 바로 systemd
넘어갈 것입니다. 정책 매뉴얼은 시간이 지남에 따라 업데이트 될 것으로 생각합니다 systemctl
. 그러나 내가 확실하지 않은 것은 이것입니다 : invoke-rc.d
대신 사용해야합니까 service
? dpkg
트리거를 통해 일부 파일에 관심이 있다고 말할 수 있으므로 dpkg
일부 서비스에 관심 dpkg
이 있고 다시 시작 / 다시로드를 수행 할 수있는 방법이 있습니까?
명확히하기 위해 : 나는 init 스크립트를 작성하지 않습니다. Puppet, NTP 등과 같은 다른 응용 프로그램에 대한 구성을 가진 패키지를 제공하고 있으므로 스크립트에서 해당 서비스를 중지했다가 다시 시작합니다.
예를 들어 여기 에 invoke-rc.d
vs 에 대한 Docker 문제가 service
있습니다. 한 사람, 아마도 관리자 인이 문제는 여전히 열려 있는데, 그들이 올바른 방법 으로이 일에 관심을 갖고 있다고 분명히 말하고 있습니다. (제 질문은 그 문제와 무관합니다.)
invoke-rc.d
매뉴얼 페이지 및 데비안 정책 워드 프로세서와 관련하여 그것을 사용하는 우리에게/etc/init.d/
(그들은 여전히 SYSV - 초기화를 사용 가능하게하기 때문에) 스크립트. Upstart 또는 systemd에서 어떻게 변경됩니까?