程序自启动脚本实质上就是一个shell脚本。以简单的Tomcat自启动脚本为例,Tomcat使用安装目录下的startup.sh启动、shutdown.sh停止,我们可以把它们写到一个启动脚本里。Tomcat和JDK的安装可看前面的这篇文章:http://www.live-in.org/archives/891.html
建立自启动脚本:
vim /etc/init.d/tomcat
输入如下内容:
-
#!/bin/bash
-
#
-
# tomcat startup script for the Tomcat server
-
#
-
# chkconfig: 345 80 20
-
# description: start the tomcat deamon
-
#
-
# Source function library
-
. /etc/rc.d/init.d/functions
-
-
prog=tomcat
-
JAVA_HOME=/usr/java/jdk1.6.0_27
-
export JAVA_HOME
-
CATALANA_HOME=/usr/local/tomcat
-
export CATALINA_HOME
-
-
case "$1" in
-
start)
-
echo "Starting Tomcat..."
-
$CATALANA_HOME/bin/startup.sh
-
;;
-
-
stop)
-
echo "Stopping Tomcat..."
-
$CATALANA_HOME/bin/shutdown.sh
-
;;
-
-
restart)
-
echo "Stopping Tomcat..."
-
$CATALANA_HOME/bin/shutdown.sh
-
sleep 2
-
echo
-
echo "Starting Tomcat..."
-
$CATALANA_HOME/bin/startup.sh
-
;;
-
-
*)
-
echo "Usage: $prog {start|stop|restart}"
-
;;
-
esac
-
exit 0
说明:
这里的启动脚本可以把它分为3个部分,第一部分是申明启动脚本和注释,第二部分是定义路径的变量,第三部分是一个case...in条件选择结构。
第一部分
1)因为是个shell脚本,所以开始必须要有#!/bin/bash这一行,这里表示使用的shell是bash。
2)# chkconfig: 345 80 20是让chkconfig命令能够识别这个启动脚本,必须要有,其余带#的都是注释说明。
3). /etc/rc.d/init.d/functions是在当前shell下执行functions这个文件,而不是在子shell中执行。它类似于库函数,后面的启动脚本可能会调用functions内的基础函数。
第二部分
1)从prog=tomcat开始,设定了3个变量,使用prog定义脚本名称,JAVA_HOME定义JDK安装目录,CATALANA_HOME定义tomcat安装目录。
2)export命令是使定义的变量在子shell中也可以使用。
第三部分
1)第三部分是一个case条件选择结构,语法结构如下:
case 字符串 in
值1 )
操作 ;;
值2 )
操作 ;;
值3 )
操作 ;;
...
*)
操作 ;;
esac
2)$1是一个位置参数,位置参数是一种在调用shell程序的命令行中按照各自的位置决定的变量,是在程序名之后输入的参数。位置参数之间用空格分隔,shell取第一个位置参数替换程序文件中的$1,第二个替换$2,依次类推。
3)$CATALANA_HOME/bin/startup.sh表示启动tomcat。
4)$CATALANA_HOME/bin/shutdown.sh表示停止tomcat。
5)sleep 2 表示休眠2秒。
6)exit 0 表示退出。
(责任编辑:IT) |