종료하고 재부팅할 때마다 스크립트를 실행하려고 하는데 스크립트가 실행되지 않습니다.
- baseRhel64 스크립트를 생성하여 다음 위치에 저장했습니다.
/etc/rc.d/init.d
- 내가 해냈어
chkconfig --add baseRhel64
스크립트에 포함시켰어요
#chkconfig --list # chkconfig: 06 10 10
- S10 스크립트가
/etc/rc0.d/S10baseRhel64
다음에서 생성 되었음을 확인했습니다./etc/rc6.d/S10baseRhel64
아래는 내 스크립트입니다.
#!/bin/sh
#chkconfig --list
# chkconfig: 06 10 10
start(){
echo "`basename $0` start"
touch /root/installscripts/test1
}
stop(){
echo "`basename $0` stop"
touch /root/installscripts/test2
touch /root/installscripts/"`basename $0`"
}
case "$1" in
start) start;;
stop) stop;;
*)
echo $"Usage: $0 {start|stop}"
RETCAL=1
esac
exit 0
답변1
RH EL 6에서 사용자 정의 초기화 스크립트(예: "service_name")를 구성할 때 시작 단계에서 잠금 파일 /var/lock/subsys/service_name을 생성해야 합니다. 그렇지 않으면 스크립트가 구현되지 않습니다. 시스템을 종료합니다(init 0 또는 init 6). 또한 잠긴 파일의 중지 단계에서 "rm -f"를 설정해야 합니다.
답변2
/etc/rc0.d
합계 금액을 확인하면 /etc/rc6.d
서비스를 받기 전에 시스템이 먼저 killall
(우선순위 00) 실행된 다음 halt
(우선순위 01) 실행되는 것을 볼 수 있습니다.
서비스가 다음에 실행되도록 예약되었지만 컴퓨터가 작동을 멈췄습니다.
lrwxrwxrwx 1 root root 17 Sep 28 2012 S00killall -> ../init.d/killall
lrwxrwxrwx 1 root root 14 Sep 28 2012 S01halt -> ../init.d/halt
lrwxrwxrwx 1 root root 14 Jul 8 21:16 S10test -> ../init.d/test
내가 당신이라면 일반적으로 사용하는 런레벨에서 스크립트를 활성화한 다음 345
시작을 중지로 바꾸는 것입니다. 현재 런레벨에서 실행 중인 모든 chkconfig:ed 데몬은 중지 시 호출되고 arg로 stop
다시 시작되기 .앞으로그만한 가치가 있는 서비스를 받았어요시작.
스크립트를 마지막으로 실행하려면 모든 항목을 종료하고 시스템을 중지하기 전에 가장 높은 값을 확인하세요(mine K92iptables
이므로 중지 우선 순위 > 92).
먼저 다음 줄을 읽 chkconfig --del baseRhel64
도록 스크립트를 변경하십시오.chkconfig
# chkconfig: 345 10 93
그러면 스크립트는 다음과 같이 시작 및 중지 함수 이름을 바꿉니다.
#!/bin/sh
#chkconfig --list
# chkconfig: 345 10 93
stop(){
echo "`basename $0` stop"
touch /root/installscripts/test1
}
start(){
echo "`basename $0` start"
touch /root/installscripts/test2
touch /root/installscripts/"`basename $0`"
}
case "$1" in
start) start;;
stop) stop;;
*);;
echo $"Usage: $0 {start|stop}"
RETCAL=1
esac
exit 0
답변3
나는 당신을 위한 좋은 해결책을 가지고 있습니다. a) 다음과 같은 스크립트
#!/bin/sh
#
# localshutdown
#
# chkconfig: 06 01 25
# description: localshutdown script
#
### BEGIN INIT INFO
# Provides:
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 0 6
# Default-Stop:
# Short-Description:
# Description:
### END INIT INFO
# Source function library.
start() {
echo "Your commands here"
touch /root/funziona #use it for a test
}
stop() {
echo "nothing" >/dev/null 2>&1
}
restart() {
stop
start
}
case "$1" in
start)
start
$1
;;
stop)
stop
$1
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 2
esac
exit $?
그 다음에
chkconfig --add /etc/init.d/yourscript.sh
그 다음에
chkconfig --level 06 yourscript.sh on
chkconfig --level 12345 yourscript.sh off
테스트를 거쳐 작동 중