글타래: Tiger에서 소개된 launchd와 관련된 글 모음
Tiger로 업그레이드 했을 경우, launchd를 쓰게 만들기
만약에, 깨끗한 설치가 설치가 아닌 10.4로 업그레이드 설치를 하였을 경우에는 모든 daemon들(예로, ftp, ssh 등과 같은)이 여전히 xinetd를 통해 실행되게 되는 데, 이것은 앞으로 더 이상 지원되지 않을 예정으로, Apple에서는 호환을 위해 계속 xinetd을 제공하고 있지만, 최적의 성능을 위한 대세는 새로운 launchd으로의 전환이라고 합니다.
이전에 /etc/xinetd.d 안에 기타 서비스들이 등록되어 있는 상태였다면, 업그레이드 시, launchd 대신에 xinetd가 사용되게 되므로, 강제로 launchd이 서비스들의 실행을 도맡게 하려면 다음과 같이 터미널에서 xinetd 관련 파일들을 따로 옮겨서 저장해 놓습니다.
sudo mkdir /etc/xinetd.d.bak
sudo mv /etc/xinetd.d* /etc/xinetd.d.bak/
그리고, 이전에 등록해 두었던 서비스들은 launchd의 새로운 plist 형태의 파일에 추가해서 옮기면 되고, 여기에 필요한 정보는 man launchd, launchctl, launchd.plist를 살펴보거나, Apple의 Introduction to System Startup Programming Topics 문서를 참고하시기 바랍니다. 새로 더해질 항목들은 /Library/LaunchDaemons에 붙게 되고, 시동 시에 자동 실행되거나 혹은 다음과 같이 직접 실행시킬 수 있습니다:
sudo launchctl load /Library/LaunchDaemons/new_service_name.plist
이런 과정 후에는, 시스템 환경설정에서 원하는 서비스들을 켜주고 다시 시동하면, 더 이상 xinetd이 시동 시에 간섭을 안하게 되고, 모든 서비스들의 실행은 새로운 launchd이 도맡게 됩니다. 이렇게 하면 시스템 시동시간을 단축시키는 효과도 볼 수 있다고 합니다.
따옴 - Mac OS X Hints
예전에는 주로 컴퓨터 시동시 실행되는 Apache, FTP, Telnet, Samba와 같은 각종 서비스들을 실행하고 정지시키는 일을 xinetd라는 놈이 도맡아 왔었습니다만, 시스템에 부하를 줄이고 손쉬운 관리를 위해 Apple에서는 이전의 못 미더운 도구를 갈아치우면서 Launchd(launch deamon)이라는 놈을 새로 짜맞추게 되었답니다.
이렇게 해서 사용 환경상 변경된 것은, 예전의 StarupItems 폴더에 위치했던 실행파일과 설정 관련 파일들이 Tiger에 와서는 필요가 없게 되었고, 대신 크게 두 개(LaunchDaemons, LaunchAgents)로 나뉘는 서비스의 사용 용도에 따라 다음의 다섯 곳에 설정 관련 Property List 파일들이 존재하게 되었습니다.
~/Library/LaunchAgents
/Library/LaunchAgents
/Library/LaunchDaemons
/System/Library/LaunchAgents
/System/Library/LaunchDaemons
여기에 저장될 Property List 파일을 만드는 방법은 위에 소개된 Apple 문서 안에 자세하게 설명되어 있습니다만, 이미 시스템 차원에서 제공되어 있는 서비스들을 사용하는 사용자 입장에서는 이것은 신경쓰실 필요가 없습니다.
참고로, Launchd용 property list 파일의 생성은 Launchd Editor로도 손쉽게 할 수 있습니다.