#!/bin/sh
## java env
## service name
## 服务所在目录
SERVICE_DIR=/home/dev/dalligent/jar
## 服务名称
SERVICE_NAME=dalligent-0.0.1-SNAPSHOT
JAR_NAME=$SERVICE_NAME\.jar
PID=$SERVICE_NAME\.pid
cd $SERVICE_DIR
case "$1" in
start)
##nohup & 以守护进程启动
nohup java -Xms256m -Xmx512m -jar $JAR_NAME >/dev/null 2>&1 &
echo $! > $SERVICE_DIR/$PID
echo "=== start $SERVICE_NAME"
echo "=== start $PID"
;;
stop)
kill `cat $SERVICE_DIR/$PID`
rm -rf $SERVICE_DIR/$PID
echo "=== stop $SERVICE_NAME"
## 停止5秒
sleep 5
##
P_ID=`ps -ef | grep -w "$SERVICE_NAME" | grep -v "grep" | awk '{print $2}'`
if [ "$P_ID" == "" ]; then
echo "=== $SERVICE_NAME process not exists or stop success"
else
echo "=== $SERVICE_NAME process pid is:$P_ID"
echo "=== begin kill $SERVICE_NAME process, pid is:$P_ID"
kill -9 $P_ID
fi
;;
restart)
$0 stop
sleep 2
$0 start
echo "=== restart $SERVICE_NAME"
;;
*)
## restart
$0 stop
sleep 2
$0 start
;;
esac
exit 0
这是一个用于启动、停止和重启Java服务的自动化脚本。脚本位于/home/dev/dalligent/jar目录下,服务名为dalligent-0.0.1-SNAPSHOT。通过nohup以守护进程方式启动服务,并记录进程ID到.pid文件。停止服务时,会读取.pid文件并杀死对应进程,确保服务完全停止。
851

被折叠的 条评论
为什么被折叠?



