[Mac]launch daemon vs launch agent

운영체제로그/MacOS 2010. 12. 11. 16:37


운영체제 부팅과 함께 프로그램을 실행시키는 2가지 형태의 방법이 있다. 
launch daemon 으로 실행하는 방법과, launch agent 로 실해하는 방법이 그것인데, 
각각 윈도우에서 서비스 , 시작프로그램으로 실행하는 것과 같다. 

[Launch daemon]
사용자 로그인없이도 실행이 가능하지만,  GUI 상에서 정보를 보여줄 수는 없다. 
웹서버와 데이터베이스 서버 구동을 위해 적합한 방법이라 할수 있겠다.  프로그램들은 plist 설정파일에 
실행할 명령 및 옵션과 함께 기술된다.   /System/Library/LaunchDaemons 폴더에는 애플에서 제공되는 
daemon들을 위한 설정파일이 위치하고, /Library/LaunchDaemons 폴더에는 사용자 및 그외의
 daemon들을 위한 설정파일들이 저장된다. 

[Launch agent]
agent는 사용자를 대신하여 실행되는 프로그램이기 때문에 반드시 사용자가 로그인되어 있어야 한다. 
GUI를 통해 정보를 보여줄 수 있기 때문에,  SNS 애플리케이션과 같이 자주 사용하는 애플리케이션 등록에
적한한 방법이다. 역시 plist 포맷으로 기술되며, 모든 사용자가 공통으로 사용할 프로그램은  /System/Library/LaunchAgents 와 /Library/LaunchAgents 폴더에 설정파일이 저장된다. 사용자별 설정파일은 ~/Library/LaunchAgents 폴더에 저장된다. 

'운영체제로그 > MacOS' 카테고리의 다른 글

[Mac]launch daemon vs launch agent  (0) 2010.12.11
[Mac]시작프로그램/Script 등록하기  (0) 2010.12.11

[Mac]시작프로그램/Script 등록하기

운영체제로그/MacOS 2010. 12. 11. 15:43


Mac에서 시작 프로그램를 다음과 같이 등록할 수 있다.

시스템 환경설정(System Preferences) > 계정설정(Account) > "로그인 항목" 에

부팅완료 후 자동실행을 할 애플리케이션을 추가하거나 삭제할 수 있다.

MySQL을 설치하고, MySQL 서버를 시작과 동시에 구동하려 했는데... 위 항목에서는

스크립트를 추가할 수가 없었다.

launchd를 사용하여 데몬으로 시작시키는 방법을 알아보았다~

1 PropertyEditor 를 실행시켜서 아래와 같이 입력한다.


2. com.mysql.mysqld.plist 라는 이름으로 저장한다.

3. 이 파일을 /Library/LaunchDaemons 폴더로 복사한다.

4. 파일의 소유자와 그룹, 권한을 다음과 같이 변경한다.

$cd /Library/LauchDaemons$sudo chown root com.mysql.mysqld$sudo chgrp wheel com.mysql.mysqld$sudo chmod 644 com.mysql.mysqld

5. sudo launchctl load com.mysql.mysqld.plist 명령을 수행하여, launchd 에 작업을 등록한다.

* plist 파일에 지정합 키-값은 launchd 에 의해 미리 정해진 옵션으로 Program을 daemon으로 수행하기 위한 옵션으로 작용한다.

plist 파일을 변경하고, 다시 적용하기 위해서는 먼저 launchctl unload com.mysql.mysqld.plist 명령으로 언로드를 수행하고 다시 적용시켜야한다

디폴트로 mysqld 는 /etc/my.cnf 파일에 정해진 설정을 읽어서 구동되는데, 이 파일에 옵션을 줄 수도 있지만, plist 파일을 사용하면

모든 설정을 한곳으로 모을수 있는 장점이 있다. mysqld 에 줄수 있는 옵션들은 /etc/my.cnf 파일을 열어 확인을 하고,

plist 파일의 ProgramArguments 키의 array 값의 인자로 지정을 하면된다.

plist 파일의 추가할 수 있는 키옵션들은 man launchd.plist 명령을 통해 확인하자.

'운영체제로그 > MacOS' 카테고리의 다른 글

[Mac]launch daemon vs launch agent  (0) 2010.12.11
[Mac]시작프로그램/Script 등록하기  (0) 2010.12.11