脚本内容
创建sh文件,vi xxx.sh贴上内容,然后:wq保存退出。
文件内容:
#!/bin/sh
#这里可替换为你自己的执行程序,其他代码无需更改
PIDFILE=xxx.pid
service=xxx
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh demo.sh [start|stop|status]"
exit 1
}
#检查程序是否在运行
is_exist() {
pid=`ps -ef | grep $service.jar | grep -v grep | awk '{print $2}' `
echo "pid==${pid}"
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
case "$1" in
start)
is_exist
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo "$PIDFILE exists, process is already running or crashed"
exit 1
fi
echo "Starting $service ..."
nohup java -Xms256m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/opt/logs/$service/$service.dump -jar $service.jar --spring.profiles.active=test > /dev/null 2>&1 &
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo "$service is started"
echo $! > $PIDFILE
exit 0
else
echo "Stopping $service"
kill $pid
sleep 5s
kill -9 $pid
rm -f $PIDFILE
exit 1
fi
;;
stop)
is_exist
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
kill -9 $pid
rm -f $PIDFILE
echo "Shutting down $service"
else
echo "Failed to stopping $service"
fi
;;
status)
is_exist
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo "$service is running ($pid)"
else
echo "$service is not running"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
;;
esac
指令
sh xxx.sh start 启动
sh xxx.sh stop 停止
sh xxx.sh restart 重启
sh xxx.sh status 状态
说明
# -Xmx20m -Xms5m -XX:HeapDumpOnOutofMemoryError -XX:HeapDumpPath=/var/a.dump
# 分配了20M最大空间 ,启动 最小空间5M , 发生了 内存溢出错误 dump路径为a.dump
# 2>&1 输出所有的日志文件
# ${path}.log 日志输出地址
# & 后台启动
原文链接:https://blog.csdn.net/weixin_40991408/article/details/88997180