머신 부팅 시 sh 파일 실행

머신 부팅 시 sh 파일 실행

저는 Linux를 처음 접했고 컴퓨터 시작 시 .sh 파일을 실행하기 위해 수행해야 할 작업을 알고 싶습니다. 기본적으로 Linux OS가 설치된 서버 시스템이 있고 시스템이 다시 시작되거나 충돌할 때 일부 jboss 응용 프로그램을 실행하고 싶습니다.

S99jBossServersrc2.d에 링크를 추가 /etc/rc.d/init.d/jBossServers.sh하고 전체 권한(777)을 부여했습니다.jBossServers.sh

의 내용은 jBossServers.sh다음과 같습니다

#!/bin/sh
#
# chkconfig: 2345 80 30 
# description: 
#

RETVAL=0

start () {
    /root/batch/startSikkimCA.sh
    /root/batch/startSikkimSp.sh
}

stop () {
    /root/batch/stopSikkimCA.sh
    /root/batch/stopSikkimSp.sh
    RETVAL=$?
}
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        start
        ;;
    *)
        start
;;
        RETVAL=$?
esac
exit $RETVAL

그것이 올바른지 아닌지는 확실하지 않지만 2개의 경로가 참조되었습니다.

시작() 및 중지()

정확하지만 여전히 컴퓨터를 다시 시작해도 응용 프로그램이 시작되지 않습니다.

답변1

보다초기화이는 전통적인 프로세스 시작기이며 , 등에서 스크립트를 실행합니다. /etc/init.d그리고 /etc/rc1.d아마도 /etc/rc.local원하는 위치일 것입니다.

일부 배포판에서는갑자기 나타나다대신 - 그렇다면 해당 문서를 살펴보십시오.

두 경우 모두 정확한 경로는 배포판에 따라 다를 수 있지만 시작하기에 충분합니다.

답변2

스크립트가 시작되고 있는지 확인해보세요(예: touch /var/tmp/startup.script스크립트에 넣는 중). 부팅하는 동안 스크립트의 모든 명령이 검색 패치에 있습니까?

런레벨 2는 나에게 이상해 보입니다. GUI가 없는 Linux에서는 3이 정상입니다. 어떤 배포판과 버전을 사용하고 있나요?

답변3

/etc/inittab와 같은 줄을 찾으 십시오 id:3:initdefault:. 숫자는 3 또는 5일 수 있지만 2 또는 4일 수도 있습니다. 해당 줄의 숫자는 기본 런레벨입니다. 2가 아닐 가능성이 높으므로 rc2.d의 스크립트는 실행되지 않습니다.

줄의 번호와 일치하는 rcN.d 디렉터리에 스크립트를 넣으세요 initdefault.

원칙적으로는 rc.local이 더 나은 선택이지만 rc.local은 distro마다 매우 다양하므로(때로는 디렉토리일 때도 있고, 스크립트일 때도 있고, 전혀 설정되지 않은 경우도 있습니다), distro를 모르더라도 그냥 하는 것이 더 쉽습니다. 올바른 런레벨에 넣었습니까? man rc.local시스템에 표시된 내용을 확인해 볼 수도 있습니다 . 시스템이 rc.local을 디렉토리로 지원하는 경우 거기에 스크립트를 넣고 실행 수준에 대해 걱정하지 마십시오.

또한 스크립트가 루트 소유이고 755(누구나 실행할 수 있도록 하려면) 또는 744 권한이 있는지 확인하세요.

답변4

시작 스크립트 추가

이 방법은 Red Hat, Fedora, Ubuntu(chkconfig 및 서비스 설치 패키지), Suse에서 작동합니다.

/etc/init.d에 스크립트를 복사해야 합니다. (적절한 디렉터리이거나 적절한 디렉터리에 대한 링크이므로 동일하게 작동합니다.)

sudo cp jBossServers.sh /etc/init.d/
sudo chmod 0755 /etc/init.d/jBossServers.sh

그런 다음 이를 시스템 시작 프로세스에 추가해야 합니다. 필요한 모든 링크를 생성하는 대신 chkconfig를 사용하십시오(우분투에 먼저 패키지를 설치하십시오).

sudo chkconfig add jBossServers.sh

이제 스크립트 제목을 읽으면 이 스크립트에는 실행 수준 및 우선 순위와 관련된 chkconfig에 대한 정보가 이미 있습니다. 그러니 당신은 괜찮습니다. 다음에 재부팅하면 JBoos가 시작됩니다.

하지만 지금 당장 시작해 볼 수도 있어요

sudo service jBossServers.sh start

참고: 시스템이 chkconfig 또는 서비스를 찾을 수 없다고 불평하는 경우 이전에 /sbin/을 사용하여 then을 호출해 보십시오. 예

sudo /sbin/chkconfig add jBossServers.sh
sudo /sbin/service jBossServers.sh start

관련 정보