Solaris에서 재부팅 후 시작 스크립트가 실행되지 않습니다.

Solaris에서 재부팅 후 시작 스크립트가 실행되지 않습니다.

/etc/rc3.d서버가 다시 시작될 때 실행되지 않는 Apache를 시작하는 명령이 있습니다 . 이 스크립트는 이라고 합니다 S75Apache2. 일부 사람들은 링크 이름에 대문자 "A"가 포함되어 있기 때문에 이를 로 바꾸면 작동할 수 있다고 추측합니다 S75apache2.

누구든지 이것을 확인할 수 있습니까? 문서를 검색했지만 답변을 찾을 수 없습니다. 서버를 다시 시작하지 않고는 실제로 이것을 테스트할 수 없습니다(나는 그렇게 하고 싶지 않습니다).

답변1

Solaris 초기화 스크립트는 번거롭습니다. 대문자 A는 중요하지 않습니다. /etc/rc.d"S"로 시작하는 모든 파일을 찾아 /etc/rc3.d숫자 순서대로 실행하는 스크립트가 있습니다.

이렇게 하면 기본 사항부터 시작할 수 있습니다.

  1. /etc/rc3.d/S75Apache2설정이 실행 가능합니까?

  2. 스크립트에 "#!" 줄이 있나요? 행이 정확합니까(인쇄되지 않는 바이트가 없는 등)?

  3. bash 또는 ksh 스크립트인 경우 로 입력하면 ksh -n /etc/rc3.d/S75Apache2 start구문 오류가 있는지 알려줍니다.

  4. 스크립트를 루트로 실행할 수 있다면 시도해 보고 스크립트 /etc/rc3.d/S75Apache2 start/etc/rc3.d/S75Apache2 stop 시작되고 httpd중지되는지 다시 확인하세요 httpd. 최소한 "start" 및 "stop" 매개변수를 사용하여 스크립트를 직접 실행하십시오. set -x스크립트가 실행될 때 수행되는 작업을 확인하는 데 사용됩니다 . 당신이 생각하는 대로 작동하는지 확인해보세요.

  5. 주의 깊게 읽으십시오 /etc/rc3.d/S75Apache2. PATH시작 시 희박 패딩을 사용하면 스크립트는 시작 시 특정 실행 파일의 위치를 ​​알 수 없지만 시작 후 실행되는 시기는 알 수 있습니다. 너무 많은 가정을 하지 마십시오. 존재한다고 생각하는 파일이 존재하지 않을 수도 있습니다.

  6. KnnApache2에 스크립트가 없는지 확인하세요 /etc/rc3.d. 나는 init(예를 들어) 런레벨 3에서 런레벨 5로 전환할 때 Solaris가 작동할 것이라고 믿습니다 .K76Apache2 stop

  7. 스크립트가 사용자 ID를 올바르게 변경하는지 확인하십시오. 일부 프롤로그 명령을 사용하여 스크립트를 apachectl start호출할 수 있으므로 Apache에서는 문제가 되지 않을 수 있지만 직접 실행하는 경우 생성된 프로세스에 올바른 사용자 ID가 있는지 http확인하세요 . 스크립트의 내용이나 내용을 httpd사용하여 sudo올바르게 만드세요.

답변2

시작 스크립트에 버그가 있는 것으로 나타났습니다. LD_LIBRARY_PATH 변수가 잘못 설정되었습니다. 스크립트에서 이를 정의하면 문제가 해결됩니다.

나중에 참조할 수 있도록 문제 해결의 원인이 된 오류가 포함된 시작 메시지가 포함된 로그 파일이 있습니다. 파일은 다음과 같습니다

/var/svc/log/milestone-multi-user-server:default.log

/etc/rc3.d/README 파일에서 이에 대한 참조를 찾았습니다. 또 다른 날, 또 다른 지식 포인트!

답변3

자신만의 Apache를 출시했습니까(즉, 소스에서 컴파일했습니까?) 아니면 사전 설치된 Solaris 10 Apache를 사용하고 있습니까?

글쎄요, 말씀하신 대로 Solaris 10(또는 그 이상)을 사용하고 있다면 별 문제가 되지 않습니다.Solaris 초기화 스크립트를 전혀 사용하면 안 됩니다., SMF를 사용해야 합니다. (예, 기술적으로 init 스크립트는 여전히 지원되지만 지적했듯이 이는 고통스럽고 SMF가 훨씬 좋습니다.)

Solaris 10과 함께 사전 설치된 Apache 2.2 웹 서버를 시작하려면(지금 및 재부팅 후 자동으로) 다음을 수행하십시오.

svcadm 활성화/네트워크/http:apache2

자체 Apache를 이미 출시한 경우 SMF 매니페스트를 생성하고 매니페스트를 가져와야 합니다. "SMF Solaris"를 Google에 검색하면 수많은 레시피를 찾을 수 있습니다.

관련 정보