더북(TheBook)
Q tftpd-hpa와 isc-dhcp-server 서비스는 런레벨을 어떻게 수정하나요?

A 지금까지 살펴봤던 여러 네트워크 서비스가 sysv-rc-conf를 이용해서 런레벨을 편집할 수 있는 것과 달리 tftpd-hpa와 isc-dhcp-server는 sysv-rc-conf의 영향을 받지 않습니다.

우분투에서는 이런 서비스를 업스타트(upstart) 스크립트로 제어합니다. 업스타트 스크립트는 /etc/init 디렉터리에 저장되어 있습니다. tftpd-hpa 서비스의 업스타트 스크립트는 /etc/init/tftpd-hpa.conf입니다.
shinjaehun@losttemple:~$ sudo vi /etc/init/tftpd-hpa.conf

런레벨 2부터 5까지 자동으로 시작하도록 설정되어 있는 상태를 확인할 수 있습니다.

start on runlevel [2345]
stop on runlevel [!2345]

업스타트 스크립트를 직접 수정하는 것은 바람직하지 않습니다. 해당 서비스의 자동 시작을 중지하려면 manual이라는 문자열을 포함하는 ‘/etc/init/[서비스 이름].override’라는 파일을 생성합니다.

shinjaehun@losttemple:~$ sudo sh -c "echo 'manual' > /etc/init/tftpd-hpa.override"

이렇게 하면 /etc/init에 ‘tftpd-hpa.conf’와 ‘tftpd-hpa.override’ 파일이 동시에 존재합니다. 시스템을 재부팅해보면 tftpd-hpa 서비스가 자동으로 시작되지 않을 것입니다.

shinjaehun@losttemple:~$ ls -l /etc/init/tftpd*
-rw-r--r-- 1 root root 1073 11월 2 14:09 tftpd-hpa.conf
-rw-r--r-- 1 root root 7 11월 2 15:16 tftpd-hpa.override
shinjaehun@losttemple:~$ cat /etc/init/tftpd-hpa.override
manual

다시 원래대로 되돌리려면 ‘tftpd-hpa.override’ 파일을 삭제해서 시스템을 재부팅합니다.

shinjaehun@losttemple:~$ sudo rm /etc/init/tftpd-hpa.override

isc-dhcp-server도 tftpd-hpa처럼 업스타트 스크립트로 서비스를 제어합니다. 하지만, 한 가지 문제가 있습니다. isc-dhcp-server 서비스가 가상 시스템 서비스보다 먼저 시작되기 때문입니다. 가상 네트워크 인터페이스인 virbr0이 활성화되기 전이라 isc-dhcp-server 서비스는 부팅 과정에서 실패하며 자동으로 시작되지 않습니다. 귀찮더라도 가상 게스트를 시작하기 전에 isc-dhcp-server 서비스를 직접 시작해야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.