제목에서 분명한 질문에 Linux 서비스 시작 / 부팅 순서를 어떻게 변경합니까?
답변
/etc/rcX.d/에서 심볼릭 링크의 이름을 바꾸어 순서를 변경할 수 있습니다. 여기서 x는 실행 레벨입니다.
Sxx 또는 Kxx로 시작하는 많은 파일이 표시됩니다. K 링크는 종료 중에 구문 분석되는 동안 S 링크는 시작 중에 추적됩니다. 여기서 xx는 순서를 나타냅니다.
그러나이 순서는 이유가 있으므로 변경하는 동안주의하십시오 (예 : ntpd는 네트워킹 하위 시스템이 초기화 된 후에 만 시작해야합니다.
답변
다른 답변에서 제안한 것처럼 수동으로 수행하는 대신 init 스크립트를 변경할 수도 있습니다. 헤더에 다음 줄을 추가하십시오.
# chkconfig: 35 90 10
chkconfig
시작 위치가 90이고 종료 위치가 10 인 실행 레벨 3과 5에 서비스를 추가하도록 지시 합니다.
답변
runlevels 및 rc.d 디렉토리 에 대해 약간 읽으려고합니다 . rc.d 디렉토리에서 S20apache K10apache와 같은 S 및 K 링크를 찾을 수 있습니다. 기본적으로 스크립트 시작 / 종료를 지시합니다.
이 아키텍처에는 약간의 변화가 있지만 대부분의 리눅스는 여전히 그것을 사용하고 있습니다.
답변
여기에 도착하면 하나는 다른 하나에 의존하지만 두 가지 서비스가있을 수 있습니다.하지만 잘못된 순서로 시작하기 때문에 종속성이있는 서비스가 시작되지 않습니다. 심볼릭 링크 편집에 대한 제안은 시작 시퀀스가 실행되는 방법을 설명하는 데 도움이되며 누군가가 서비스에서 “chkconfig on”을 수행 할 때까지 정상적으로 작동합니다. 실제로 init 스크립트 수준에서 문제를 처리하려고합니다. 실제로는 어지럽 지 않습니다. 또한 서로 다른 런레벨에서 일관됩니다. 이미 비슷한 줄이있을 것이므로 답변 4에서 제안한대로 “# chkconfig”줄을 추가하지 않아도됩니다.
MySQL 데이터베이스 백엔드 (mysqld)와 함께 Openldap (slapd)을 실행하는 서버의 예를 사용하겠습니다. 해당 쌍을 구성하고 원하는 이유는 완전히 다른 이야기입니다.
부팅시 Openldap은 MySQL에 의존하고 시작 시퀀스가 시작되기 전에 시작하려고 시도하므로 slapd는 27이고 mysqld는 64입니다
/etc/rc3.d/의 관련 심볼릭 링크는
S27slapd -> ../init.d/slapd
and
S64mysqld -> ../init.d/mysqld
두 개의 init 스크립트에서 설정된 값을 찾습니다.
[root ~]# grep chkconfig /etc/rc.d/init.d/mysqld
# chkconfig: - 64 36
[root ~]# grep chkconfig /etc/rc.d/init.d/slapd
# chkconfig: - 27 73
시작 위치가 /etc/rc.d/init.d/mysqld에있는 것보다 높도록 /etc/rc.d/init.d/slapd의 chkconfig 줄을 편집했습니다 (85를 선택했습니다)
[root ~]# grep chkconfig /etc/rc.d/init.d/slapd
# chkconfig: - 85 73
“chkconfig slapd on”을하고 심볼릭 링크를 다시 확인합니다
[root ~]# chkconfig slapd on
[root ~]# ls -l /etc/rc3.d/ | grep mysqld
lrwxrwxrwx 1 root root 16 Dec 10 13:45 S64mysqld -> ../init.d/mysqld
[root ~]# ls -l /etc/rc3.d/ | grep slapd
lrwxrwxrwx 1 root root 15 Apr 28 14:18 S85slapd -> ../init.d/slapd
이제이 서버가 시작되면 mysqld가 slapd 전에 시작되고 모든 것이 세계와 맞습니다.