服務腳本寫法詳解
SysV啟動方式最大的特點就是服務管理腳本是分開的,可以接收start,stop等的文件。一般可以用如下命令來控制服務的開啟和關閉:
/etc/init.d/xxx {start|stop|restart}
下面就來說說這種腳本是如何書寫的。
基本結構
其中${1}傳入的參數。
case "${1}" in
start)
...
;;
stop)
...
;;
restart)
...
;;
status)
...
;;
*)
...
;;
esac
示例
下面用lfs中的swap腳本文件為示例說明一下。用swap是因為這個腳本只用到一個命令swapon,控制參數也很全。
其中boot_mesg和evaluate_retval為兩個函數,不相關,可以不看。
#!/bin/sh
. /etc/sysconfig/rc
. ${rc_functions}
case "${1}" in
start)
boot_mesg "Activating all swap files/partitions..."
swapon -a
evaluate_retval
;;
stop)
boot_mesg "Deactivating all swap files/partitions..."
swapoff -a
evaluate_retval
;;
restart)
${0} stop
sleep 1
${0} start
;;
status)
boot_mesg "Retrieving swap status." ${INFO}
echo_ok
echo
swapon -s
;;
*)
echo "Usage: ${0} {start|stop|restart|status}"
exit 1
;;
esac
# End $rc_base/init.d/swap
從上面的例子可以看出,服務腳本也是不難寫的,只要在指定位置寫上代碼就可以了,前提是你知道命令是什麼。