[先上标准化启动脚本:]
#!/bin/bash
# chkconfig: 2345 93 11
# description:$INS_APP Server
. /etc/rc.d/init.d/functions
JAVA_HOME="/usr/local/jdk"
PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:$JAVA_HOME/bin
export PATH
INS_APP="storm"
KEY="ice"
BASE_DIR="/data/www/apps/$INS_APP"
LOG_DIR="/data/log/$INS_APP"
LOG_FILE="/data/log/$INS_APP/$INS_APP.log"
prog=$INS_APP
pid_file=/var/run/$INS_APP.pid
function app_action(){
APP_PORT=$(netstat -tpln |grep $KEY |grep -v grep |awk '{print $4}' |awk -F':' '{print $NF}')
APP_PID=$(ps aux |grep $KEY |grep -v grep |awk '{print $2}')
}
[[ -d /data/log/$INS_APP/ ]] || mkdir -p /data/log/$INS_APP/
start() {
# JAVA_OPTS="-Xms1536M -Xmx1536M -Xss1M -XX:MaxPermSize=256M -XX:+UseParallelGC"
if [[ ! -d $BASE_DIR ]];then
echo "$INS_APP Directorg: $BASE_DIR isn't exist,exit!"
exit
fi
cd $BASE_DIR
#nohup icebox --Ice.Config=config.icebox >> $LOG_FILE 2>&1 &
nohup icebox --Ice.Config=config.icebox 2>&1 | /usr/local/sbin/cronolog $LOG_DIR/$INS_APP.%Y-%m-%d.log &
ret=$?
if [ $ret -eq 0 ]; then
action $"Starting $INS_APP: " /bin/true
app_action
echo $APP_PID > $pid_file
else
action $"Starting $INS_APP: " /bin/false
fi
chmod 755 /etc/init.d/$INS_APP
chkconfig --add $INS_APP
chkconfig --level 3 $INS_APP on
}
stop() {
app_action
if [[ -z $APP_PID ]];then
action $"Stopping $INS_APP: " /bin/false
exit
fi
for i in $APP_PID
do
kill -9 $i
done
ret=$?
if [ $ret -eq 0 ]; then
action $"Stopping $INS_APP: " /bin/true
rm -f $pid_file
else
action $"Stopping $INS_APP: " /bin/false
fi
}
restart() {
stop
sleep 2
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $prog
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac
[ cronolog是[一款日志分割软件,以上范例日志文件将按天分割,每天产生一个新的日志文件。]
nohup icebox --Ice.Config=config.icebox 2>&1 | /usr/local/sbin/cronolog $LOG_DIR/$INS_APP.%Y-%m-%d.log &
cronolog源码包安装: https://pan.baidu.com/s/1ntiF90X