저는 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
맞는지는 모르겠지만 거기에 두 개의 경로가 참조되어 있습니다.
시작() 및 중지()
정확하지만 컴퓨터를 다시 시작해도 응용 프로그램이 계속 시작되지 않습니다.
답변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를 사용하십시오(먼저 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