![/etc/init.d/ 스크립트가 로드 중에 시작되어 시스템이 충돌합니다.](https://linux55.com/image/49297/%2Fetc%2Finit.d%2F%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EA%B0%80%20%EB%A1%9C%EB%93%9C%20%EC%A4%91%EC%97%90%20%EC%8B%9C%EC%9E%91%EB%90%98%EC%96%B4%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%B4%20%EC%B6%A9%EB%8F%8C%ED%95%A9%EB%8B%88%EB%8B%A4..png)
Centos 6.4 머신이 있습니다. /etc/init.d/를 사용하여 나만의 스크립트를 만들었습니다. 아래는 제가 인터넷에서 가져와서 시도한 스니펫입니다. 이제 문제는 OS를 로드할 때 작동이 시작되고 더 이상 전체 OS를 전혀 로드할 수 없다는 점입니다. 지금 시스템에 접속할 수 없으면 어떻게 해야 합니까?
#!/bin/bash
# chkconfig: 2345 95 05
# myapp daemon
# description: myapp daemon
# processname: myapp
DAEMON_PATH="/usr/local/bin/"
DAEMON=myap1.c
#DAEMONOPTS="-my opts"
NAME=myap1.c
DESC="my packet capture"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
case "$1" in
start)
printf "%-50s" "Starting $NAME..."
insmod /usr/local/pfring/kernel/pf_ring.ko
/usr/local/bin/myap1.c
#cd $DAEMON_PATH
#PID=`$DAEMON > /dev/null 2>&1 & echo $!`
#echo "Saving PID" $PID " to " $PIDFILE
# if [ -z $PID ]; then
# printf "%s\n" "Fail"
# else
# echo $PID > $PIDFILE
# printf "%s\n" "Ok"
# fi
;;
status)
printf "%-50s" "Checking $NAME..."
if [ -f $PIDFILE ]; then
PID=`cat $PIDFILE`
if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then
printf "%s\n" "Process dead but pidfile exists"
else
echo "Running"
fi
else
printf "%s\n" "Service not running"
fi
;;
stop)
printf "%-50s" "Stopping $NAME"
PID=`cat $PIDFILE`
cd $DAEMON_PATH
if [ -f $PIDFILE ]; then
kill -HUP $PID
printf "%s\n" "Ok"
rm -f $PIDFILE
else
printf "%s\n" "pidfile not found"
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {status|start|stop|restart}"
exit 1
esac
답변1
이 라인에 따르면
# chkconfig: 2345 95 05
스크립트에서 다음으로 시스템을 부팅할 수 있어야 합니다. 단일 사용자 모드그런 다음 스크립트 자동 시작을 비활성화합니다(스크립트는 실행 수준 2345에서 기본적으로 활성화됩니다).
단일 사용자 모드에서 시작하는 방법은 무엇입니까?
- 시작 시 GRUB 시작 화면이 나타나면 아무 키나 눌러 GRUB 대화형 메뉴로 들어갑니다.
- "Red Hat Enterprise Linux"와 부팅하려는 커널 버전을 선택한 다음 a를 입력하여 줄을 추가합니다.
- 줄 끝으로 이동하여 Single을 별도의 단어로 입력합니다(스페이스바를 누른 다음 Single을 입력). 편집 모드를 종료하려면 Enter를 누르세요.