rc.local - 부팅시 자동실행 명령어 스크립트 수행
일반적으로 서버 부팅시마다 매번 자동실행되길 원하는 명령어는 /etc/rc.d/rc.local에 넣어주면 된다.
이부분을 알아보기 전에 리눅스 부팅과정에 대한 약간의 이해를 주면 리눅스에서는 실행레벨에 따라 다르게 부팅할 수 있는데 실행레벨에 따라서 설정되어 있는 모든 프로세스들을 실행하게 된다. /etc/inittab파일에는 init가 현재의 실행레벨에서 실행되어야 할 내용들에 대한 설정이 되어 있다.
6개의 실행레벨중 기본레벨인 3번레벨의 실행내용들을 간단히 살펴보면, 즉 /etc/rc.d/rc3.d/ 디렉토리의 내용을 살펴보면 아래와 같다.
[root@inter-devel rc3.d]# ll .... lrwxrwxrwx 1 root root 19 8월 28 2007 K68rpcidmapd -> ../init.d/rpcidmapd lrwxrwxrwx 1 root root 17 8월 28 2007 K69rpcgssd -> ../init.d/rpcgssd lrwxrwxrwx 1 root root 16 8월 28 2007 K72autofs -> ../init.d/autofs lrwxrwxrwx 1 root root 16 8월 28 2007 K73ypbind -> ../init.d/ypbind lrwxrwxrwx 1 root root 14 8월 28 2007 K74apmd -> ../init.d/apmd .... lrwxrwxrwx 1 root root 17 6월 12 2007 S95anacron -> ../init.d/anacron lrwxrwxrwx 1 root root 13 6월 12 2007 S95atd -> ../init.d/atd lrwxrwxrwx 1 root root 19 6월 12 2007 S96readahead -> ../init.d/readahead lrwxrwxrwx 1 root root 20 6월 12 2007 S97messagebus -> ../init.d/messagebus lrwxrwxrwx 1 root root 19 6월 12 2007 S98haldaemon -> ../init.d/haldaemon lrwxrwxrwx 1 root root 11 6월 13 2007 S99local -> ../rc.local [root@inter-devel rc5.d]# |
보는 바와 같이 각 실행레벨마다 실행될 스크립트들은 모두 링크파일로 존재하며, 실행 스크립트들은 모두 /etc/rc.d/init.d/ 디렉토리에 존재하고 있다. 이 링크에 의해 각 실행단계별로 필요한 프로세스들을 죽이기도 하고 실행시키기도 한다.
K로 시작되는 스크립트파일들은 해당 스크립트를 종료하기 위한 것으로서 /etc/rc.d/init.d/디렉토리내에 존재하는 해당 스크립트를 stop인자와 함께 실행한다.
S로 사작되는 스크립트파일들은 해당 스크립트를 시작하기 위한 것으로서 /etc/rc.d/init.d/디렉토리내에 존재하는 해당 스크립트를 start인자와 함께 실행한다.
그리고 K와 S문자 다음에 있는 두자리의 숫자는 실행순서를 결정하기 위한 것이다.
여기서 주의깊게 봐야 할 것은 맨 마지막 스크립트파일이 S99local 이라는 것이다. 보는 봐와 같이 이 파일은 /etc/rc.d/rc.local로 링크되어 있으며 각 실행레벨에서 맨 마지막 단계에 꼭 한번 실행되는 파일이다. 일반적으로 아파치나 MYSQL 등을 컴파일하여 설치한 후에 부팅시마다 매번 자동실행되기 위하여 /etc/rc.d/rc.local 파일에 실행시킬 내용을 넣어두는 이유가 여기에 있다.
/etc/rc.d/rc.local 파일에 아파치와 톰캣을 재시작하기 위한 설정부분이다.
참고로 아파치와 톰캣을 재시작할때에는 먼저 톰캣을 시동하고 아파치를 나중에 시동한다.
#!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. source /etc/profile /usr/local/tomcat/bin/startup.sh /usr/sbin/apachectl start |
만약, 사용자들이 리눅스서버에 새로 설치한 툴이나 프로그램을 매번 부팅때마다 자동으로 실행되도록 하려면 이 파일의 맨 마지막에 원하는 실행 명령을 넣어두면 된다.