linux 多jetty启动脚本
2012-09-17 14:54
190 查看
这个脚本是通过命令的方式来启动不同的jetty
假设这个文件名为jetty-root.sh 放在/home/chris 下 我们可以通过ln命令设置快捷方式jj
ln -s /home/chris/jetty-root.sh /usr/bin/jj
/data/app/jetty-chris 的启动命令为 jj start chris 停止命令为 jj stop chris 查看日志jj logf chris
/data/app/jetty-hudson 的启动命令为 jj start hudson 停止命令为 jj stop hudson 查看日志jj logf hudson
假设这个文件名为jetty-root.sh 放在/home/chris 下 我们可以通过ln命令设置快捷方式jj
ln -s /home/chris/jetty-root.sh /usr/bin/jj
/data/app/jetty-chris 的启动命令为 jj start chris 停止命令为 jj stop chris 查看日志jj logf chris
/data/app/jetty-hudson 的启动命令为 jj start hudson 停止命令为 jj stop hudson 查看日志jj logf hudson
#!/bin/bash ME=`basename $0` ArgCount=$# # 启动命令 stop | start | log | logn | logf CMD=$1 # 启动jetty的唯一标识 目录如果为jetty-chris则启动这个jetty 使用 start chris KEY=$2 NOWDAY=`date +%Y`_`date +%m`_`date +%d` WHO=`whoami` if [ ! $ArgCount -eq 2 ]; then echo " Arg count must be 2" echo " {stop | start | log | logn | logf} {key}" echo " log is cat log file" echo " logn is tail log file last 1000 line" echo " logf is tail -f log file" exit fi if [ $CMD != "start" -a $CMD != "stop" -a $CMD != "log" -a $CMD != "logf" -a $CMD != "logn" ]; then echo "arg 1 must be start or stop or log or logf or logn" exit fi #要同时启动多个jetty 要修改对应jetty.xml的端口 避免出现端口相同的情况 XMLFILE="/data/app/jetty-$KEY/etc/jetty.xml" echo -n "XML file $XMLFILE" if [ -f "$XMLFILE" ]; then echo " is exist." else echo " is NOT exist!" exit fi JAVA_HOME=/data/app/java CLASSPATH=/data/app/java/lib/dt.jar:/data/app/java/lib/tools.jar export JAVA_HOME CLASSPATH export LANG=zh_CN.UTF-8 export JETTY_HOME=/data/app/jetty-$KEY export JETTY_RUN=/data/app/jetty-$KEY/logs export JETTY_LOGS=/data/app/jetty-$KEY/logs export JETTY_ARGS=/data/app/jetty-$KEY/etc/jetty-logging.xml export JAVA_OPTIONS='-XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:PermSize=64M -XX:MaxPermSize=128M -Xmx2048m -DOPTIONS=server' PIDCOUNT=`ps -ef | grep "jetty-$KEY" | grep -v 'grep' | grep -v $ME | awk '{print $2}' | wc -l` LOGFILE=`ls -t $JETTY_HOME/logs/*.stderrout.log | awk 'NR==1'` case $CMD in logf) tail -f $LOGFILE ;; logn) tail -n1000 $LOGFILE ;; log) more $LOGFILE ;; start) if [ "$PIDCOUNT" -gt 1 -o "$PIDCOUNT" -eq 1 ]; then echo "There are too many process :" ps -ef | grep "jetty-$KEY" | grep -v 'grep' | grep -v $ME exit 1 fi if [ "$PIDCOUNT" -eq 0 ]; then echo "Let's start it......" /data/app/jetty-$KEY/bin/jetty.sh start sleep 1 echo "It's stared" exit 0 fi ;; stop) if [ "$PIDCOUNT" -gt 1 ]; then echo "There are too many process :" ps -ef | grep "jetty-$KEY" | grep -v 'grep' | grep -v $ME exit 1 fi if [ "$PIDCOUNT" -eq 0 ]; then echo "It had been down!" exit 1 fi if [ "$PIDCOUNT" -eq 1 ]; then echo "Let's stop it......" PID=`ps -ef | grep "jetty-$KEY" | grep -v 'grep' | grep -v $ME | awk '{print $2}'` kill $PID echo "Sending STOP ... Waiting ..." for i in {60..0}; do PIDCOUNT=`ps -ef | grep "jetty-$KEY" | grep -v 'grep' | grep -v $ME | awk '{print $2}' | wc -l` if [ "$PIDCOUNT" -eq 1 ]; then echo "It's running yet...$i" sleep 1 else echo "$JettyHome has been down" exit fi done PIDCOUNT=`ps -ef | grep "jetty-$KEY" | grep -v 'grep' | grep -v $ME | awk '{print $2}' | wc -l` if [ "$PIDCOUNT" -eq 1 ]; then PID=`ps -ef | grep "jetty-$KEY" | grep -v 'grep' | grep -v $ME | awk '{print $2}'` kill -9 $PID echo "Force to kill -9 pid:$PID" echo "sleep 5 second" sleep 5 echo "$PID has been down" exit fi fi ;; esac
相关文章推荐
- Linux 启动脚本 完全注释 1 -- 整…
- Linux下启动java程序的通用脚本
- Linux Oracle服务启动&停止脚本与开机自启动
- linux开机自动启动脚本
- linux下用脚本监测tomcat停止并且自动启动
- linux nginx 启动脚本
- 嵌入式Linux系统启动脚本rcS
- 如何在Linux上安装tomcat并利用脚本快速启动
- Linux Qt编程——在程序中启动其他应用、脚本
- 在Linux中,如何让指定的脚本或服务开机自动启动?
- 在 Linux 启动或重启时执行命令与脚本
- linux下shell脚本启动java程序jar包
- linux启动脚本学习
- 嵌入式Linux系统启动脚本rcS
- Linux下tomcat的快速启动,停止,重启脚本
- Linux 启动脚本 完全注释2 --- rc脚本注释
- 不错的linux下通用的java程序启动脚本
- linux中程序/脚本启动方式小结
- Tomcat 自启动环境参数的设置及 Linux 脚本的启动顺序
- Linux下Redis启动/关闭/重启服务脚本