Software Knowledge

  1. Home
  2. Docs
  3. Software Knowledge
  4. LINUX
  5. Linux: Redhat Shutdown Script not working
Generic selectors
Exact matches only
Search in title
Search in content

Linux: Redhat Shutdown Script not working

เวลาสั่ง shutdown แล้วอยากให้ script shutdown program ของเราทำงานด้วย

ปัญหาที่เจอคือ ส่วนที่ เป็น prog กำหนดไม่ตรงกับชื่อ script ที่เอามาทำ services

เช่นชื่อ script คือ ifmxd แต่ prog กำหนดเป็น informix

ทำให้เวลาระบบสร้าง lock file ใน /var/lock/subsys/ เป็น informix ซึ่งพอระบบทำการ check ก็ไม่เจอ เลยไม่ทำการ execute kill script (K*)

หลังจากที่สร้าง script เสร็จแล้วก็ควร Add เข่า chkconfig maintenance ด้วย

chkconfig –add ifmxd

ตัวอย่าง script

——————————————————————————————————

# chkconfig: 2345 90 80

# description: start and stop Informix

#!/bin/bash

#

#       /etc/rc.d/init.d/ifmxd

#

# Starts the at daemon

#

# description: Informix Start/Stop Script

# processname: informix

# Source function library.

/etc/init.d/functions

RETVAL=0

# enviroment

NODE=`uname -n`

#

#       See how we were called.

#

prog=”ifmxd”

ifmx_status() {

echo

ps -ef |grep -v grep |grep oninit|grep part01|tail -1 >/dev/null 2>&1

if [ $? -ne 0 ]

then

echo “ifmx_part01 Stopped !!!!”

else

echo “ifmx_part01 Starting ….”

fi

ps -ef |grep -v grep |grep oninit|grep part04|tail -1 >/dev/null 2>&1

if [ $? -ne 0 ]

then

echo “ifmx_part04 Stopped !!!!”

else

echo “ifmx_part04 Starting ….”

fi

echo

return 0

}

ifmx_start() {

##### start Informix

sleep 5

/usr/informix/scripts/start-stop/start_part01

sleep 5

/usr/informix/scripts/start-stop/start_part04

return 0

}

ifmx_stop() {

##### stop Informix

wall “TEST REBOOT”

sleep 10

/usr/informix/scripts/start-stop/stop_part01

sleep 5

/usr/informix/scripts/start-stop/stop_part04

return 0

}

start() {

# Check if atd is already running

if [ ! -f /var/lock/subsys/$prog ]; then

echo -n $”Starting $prog: “

ifmx_start

sleep 30

ifmx_status

RETVAL=$?

[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog

echo

fi

return $RETVAL

}

stop() {

echo -n $”Stopping $prog: “

ifmx_stop

RETVAL=$?

[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog

echo

return $RETVAL

}

restart() {

stop

start

}

status_at() {

ifmx_status

return $RETVAL

}

case “$1” in

start)

start

;;

stop)

stop

;;

restart)

restart

;;

status)

status_at

;;

*)

echo $”Usage: $0 {start|stop|restart|status}”

exit 1

esac

exit $?

exit $RETVAL