레드헷 리눅스 재부팅시 서비스 기동 실패
글쓴이: byungjun4458 / 작성시간: 금, 2021/07/16 - 8:55오전
안녕하세요
다름이 아니라 지금 아주 특이한 상황이 있어서 도움을 받고자 글을 작성해 봅니다.
RedHat 8.1 / RedHat 7.7 대상에서 발생하는 문제이며
재기동시 특정 서비스 시작시 실패가 발생합니다.
하지만 문제는 수동으로 서비스를 시작하면 정상적으로 기동됩니다.
제일 처음 확인한것은 아래와 같습니다.
1. runlevel 명령어로 현재 실행 중인 run level 확인
2. cd /etc/rc.d/rc[런레벨 번호].d 이동 (e.g. cd /etc/rc.d/rc3.d)
3. ls -al | grep 서비스 이름 검색
4. SXX서비스이름 형태의 파일 존재 여부 확인 (시작 문자열이 S인지 확인 및 XX 번호 확인)
5. 해당 파일 실행 여부 확인 절대 경로 및 상대경로 모두 실행 테스트 (e.g. ./S99서비스 이름 start , /etc/rc.d/rc3.d/S99서비스 이름 start)
허나 재부팅시 기동되는 스크립트를 수동으로 하면 모두 정상적으로 기동됩니다...
더불어 우선순위도 99로 해봤는데도 동일하네요
무조건 재부팅시에만 아래처럼 실패가 발생하는데 이제 어디를 봐야 할까요? ㅠㅠ
File attachments:
첨부 | 파일 크기 |
---|---|
화면 캡처 2021-07-16 085510.png | 1.2 MB |
Forums:
RedHat 이 아니라 RHEL(RedHat
RedHat 이 아니라 RHEL(RedHat Enterprise Linux) 겠지요?
RHEL 7부터는 systemd 로 기동합니다. 적어주신 방법은 SysV init 방식이라 RHEL 7이나 8에서는 제대로 동작하지 않습니다.
systemd를 공부하셔서 서비스 유닛 작성하시면 될 겁니다.
----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.
설마요.. init process 대신 systemd
설마요.. init process 대신 systemd 가 대신 수행하기는 하지만, 그렇다고 사용할 수 없는 방식은 아닙니다.
김정균님 말씀이 정답입니다. 구구절절이 설명하기
김정균님 말씀이 정답입니다. 구구절절이 설명하기보다는 systemd에 익숙해지십사 생각해서 그렇게 적었더니 김정균님이 역시나 지적해주시네요. ^^;
죄송합니다.
----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.
RHEL 7 부터는 init 대신 systemd 로
RHEL 7 부터는 init 대신 systemd 로 운영이 되어 집니다. 그러므로 /etc/rc.d/init.d 의 script 들은 systemd 가 대신 실행을 하게 되는데요.
이 경우, 환경 변수 등이 미묘하게 달라질 수 있습니다. 시스템 환경에 의존이 되어 실행되는 프로그램이라면 일반 쉘에서 동작할 때와 다르게 동작할 수 있습니다. 이는 init 에 의해서 실행 될 때도 동일하게 적용이 될 수 있습니다.
systemd가 호환성을 위해 SysV init
systemd가 호환성을 위해 SysV init 스크립트를 실행할 때 의존성 정보는 Linux Standard Base(LSB) 헤더의 정보를 읽어온다고 본 기억이 있습니다.
LSB 헤더 같은 사소할 수 있는 것도 꼼꼼히 적어주는 등, SysV init 스크립트를 표준에 맞게 잘 작성해야 systemd가 처리할 때 문제가 안 생길 것 같습니다.
어차피 systemd로 계속 갈 거라면 이 참에 서비스 유닛으로 init 스크립트를 컨버팅하는 것도 고려해보시지요.
----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.
댓글 달기