여러 데몬에 대해 Upstart 스크립트와 init.d 스크립트가 모두 있는 이유는 무엇입니까?

여러 데몬에 대해 Upstart 스크립트와 init.d 스크립트가 모두 있는 이유는 무엇입니까?

저는 Ubuntu 12.04.3 LTS를 실행 중이고 Samba, DHCP 서버 등과 같은 여러 서비스를 설치했습니다.

"halt now", "telinit 6" 또는 이와 유사한 것을 실행하면 다음 경고가 표시됩니다.

Since the script you are attempting to invoke has been converted
to an Upstart job, you may also use the...

영향을 받은 서비스가 두 번 중지/시작을 시도하는 것을 볼 수 있습니다. 한 번은 Upstart 작업을 통해, 그리고 다시 init.d 스크립트를 대상으로 하는 /etc/rcN.d 폴더의 S/K 심볼릭 링크를 통해. 아마도 /etc/rcN.d 폴더에서 심볼릭 링크를 간단히 제거할 수 있을 것입니다.

예제 흐름:

  1. 쉘에서 '지금 중지'를 실행하십시오.
  2. Upstart가 Samba를 중지합니다(Samba용 Upstart conf 파일이 있기 때문에).
  3. SysV가 Samba를 다시 중지하려고 합니다(/etc/rc0.d/K20smbd 심볼릭 링크도 있기 때문에).

불필요해 보이고 추악한 경고가 표시되므로 3단계를 이해하지 못하거나 원하지 않습니다.

여러 데몬에 대해 Upstart 스크립트와 init.d 스크립트에 대한 심볼릭 링크가 모두 있는 이유는 무엇입니까? 각 /etc/rcN.d 폴더에서 중복된 심볼릭 링크를 수동으로 정리해야 하는 것이 올바른 방법입니까?

답변1

init우분투에는 실행할 때마다 상대방의 신생 기업을 호출하는 호환성 링크가 있습니다 .

예를 들어 전화를 걸면 sudo /etc/init.d/apache start사용해야 할 유용한 정보 메시지를 제공하는 upstart-job에 연결되고 sudo services apache start자체적으로 명령이 실행됩니다.

ls -l /etc/init.d/network-manager 
lrwxrwxrwx 1 root root 21 Sep 18 14:02 /etc/init.d/network-manager -> /lib/init/upstart-job

cat /lib/init/upstart-job
#!/bin/sh -e
# upstart-job
#
# Symlink target for initscripts that have been converted to Upstart.
{ lots of ASCII awesomeness }

답변2

나는 이것이 내 Puppet 스크립트의 잘못된 구성이라는 것을 알았습니다.

'service' 유형 속성 'enable'은 Upstart 스크립트를 인식하는 대신 SysV init 스크립트를 생성했습니다.

관련 정보