머신이 시작될 때 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

맞는지는 모르겠지만 거기에 두 개의 경로가 참조되어 있습니다.

시작() 및 중지()

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

답변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를 사용하십시오(먼저 Ubuntu에 패키지를 설치하십시오).

sudo chkconfig add jBossServers.sh

이제 실행 수준 및 우선 순위 정보에 관한 chkconfig가 이미 포함되어 있는 스크립트 제목을 읽어 보십시오. 그러니 당신은 좋습니다. JBoos는 다음 재부팅 시 시작됩니다.

하지만 지금 시작해도 돼요

sudo service jBossServers.sh start

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

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

관련 정보