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