#!/bin/bash
#
# chkconfig: - 57 75
# description: test service
#!/bin/sh
JAVA_OPTS="-Duser.timezone=GMT+8 -server -Xms512m -Xmx512m -Xloggc:agent.log"
APP_LOG=/home/monitor/alert-agent/
APP_HOME=/home/monitor/alert-agent/
APP_MAIN=com.upyoo.agent.AgentServer
CLASSPATH=$APP_HOME/classes
for tradePortalJar in "$APP_HOME"/*.jar
do
CLASSPATH="$CLASSPATH":"$tradePortalJar"
done
tradePortalPID=0
getTradeProtalPID(){
javaps=`ps -ef|grep java | awk '{ if($8=="./jre/bin/java") print $2}'`
if [ -n "$javaps" ]; then
tradePortalPID=$javaps
else
tradePortalPID=0
fi
}
start() {
getTradeProtalPID
echo "======================================================================================"
if [ $tradePortalPID -ne 0 ]; then
echo "$APP_MAIN already started(PID=$tradePortalPID)"
echo "======================================================================================"
else
echo -n "Starting $APP_MAIN"
cd /home/monitor/alert-agent
./start.sh
getTradeProtalPID
if [ $tradePortalPID -ne 0 ]; then
echo "(PID=$tradePortalPID)...[Success]"
echo "======================================================================================"
else
echo "[Failed]"
echo "======================================================================================"
fi
fi
echo 3 >> /tmp/sunyu.txt
}
stop() {
echo "Stopping test ..."
echo 2 >> /tmp/sunyu.txt
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|force-reload)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|force-reload}"
exit 2
esac
CentOS下将自定义脚本制作成系统服务自动启动,Shell/批处理代码片段分享, - 脚本分享网
http://www.sharejs.com/codes/shell/6702
1.编写自己的服务脚本
进入系统服务脚本目录:
cd /etc/rc.d/init.d/
vi test
内容如下:
#!/bin/bash
#
# chkconfig: - 57 75
# description: test service
start() {
echo "Starting test ..."
echo 3 >> /tmp/sunyu.txt
}
stop() {
echo "Stopping test ..."
echo 2 >> /tmp/sunyu.txt
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|force-reload)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|force-reload}"
exit 2
esac
要注意的是, 文件的格式要是 unix. 可以通过 VI 命令 :set ff? 查看.如果不是, 执行的时候会报错:
/bin/bash^M: bad interpreter
VI 中保存
将该脚本设置为可执行:
chmod +x test
可以看到. 启动服务的时候会输出一行字. 然后往 /tmp/sunyu.txt 中写入一个 3. 关闭时会往文件中写入一个 2 如果该文件不存在, 请先行自己在 /tmp 下新建:
cd /tmp/
touch sunyu.txt
然后将文件设置为可写:
chmod 777 sunyu.txt
2.添加系统服务
chkconfig --add test
3.系统服务自启动
chkconfig --level 345 test on
4.测试
service test start
然后查看 /tmp/sunyu.txt 中的内容: cat /tmp/sunyu.txt
service test stop
然后再查看上面文件中的内容
重启:
reboot
再查看 /tmp/sunyu.txt 文件中的内容.如果看到变化表示服务添加成功.
此例通过后, 可在脚本中的 start stop 中做自己想做的其它事了.