运维经验分享(五)-- 改进的java进程管理的服务控制脚本

简介:
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://dgd2010.blog.51cto.com/1539422/1677157

运维经验分享作为一个专题,目前共7篇文章

  1. 运维经验分享(一)-- Linux Shell之ChatterServer服务控制脚本

  2. 运维经验分享(二)-- Linux Shell之ChatterServer服务控制脚本二次优化

  3. 运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行Shell脚本的问题(一)

  4. 运维经验分享(四)--关于 java进程管理的服务控制脚本编程思路分析

  5. 运维经验分享(五)-- 改进的java进程管理的服务控制脚本

  6. 运维经验分享(六)-- 深究crontab不能正确执行Shell脚本的问题(二)

  7. 运维经验分享(七)-- Linux Shell之ChatterServer服务控制脚本第三次优化

====================================分割线======================================

针对上一篇文章《运维经验分享(四)--关于 java进程管理的服务控制脚本编程思路分析

最初版本(由别人写的):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/sh
#chkconfig: 345 86 14
#description: Startup and shutdown script for ChatterServer
VERSION=1.0.0-snapshot
PIDFILE=. /pid/chatter .pid
SERVER=. /chatter- $VERSION\.jar
ARGS= "-Xms2g -Xmx2g -Xmn2g -Xss128k"
# -Xms2g -Xmx2g -Xmn2g -Xss128k -XX:MaxPermSize=64m -XX:-UseParallelGC -XX:+UseParallelOldGC -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=30 -XX:SurvivorRatio=6
 
start()
{
     if  test  -e $SERVER
     then
         echo  "Starting $SERVER"
         if  java -jar $SERVER $ARGS >. /logs/console .out 2>&1 &
         then
             echo  $! > $PIDFILE
             echo  "server start OK"
         else
             echo  "server start failed"
         fi
     else
         echo  "Couldn't find $SERVER"
     fi
}
 
stop()
{
          if  test  -e $PIDFILE
          then
                    echo  "Stopping server"
                    if  kill  ` cat  $PIDFILE` 2>. /logs/console .out
                    then
                             echo  "server stop OK"
                    else
                         echo  "server stop faild"
                    fi
          else
                    echo  "No server running"
          fi
}
 
restart()
{
     echo  "Restarting server"
     stop
     start
}
 
case  $1  in
          start)
                 start
         ;;
          stop)
             stop
         ;;
          restart)
             restart
         ;;
          *)
             echo  "Usage: $SCRIPTNAME {start|stop|restart|list}"  >&2
         exit  1
         ;;
esac
exit  0

第一版本(我写的):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/bin/bash
#chkconfig: 345 86 14
#description: Startup and shutdown script for ChatterServer
VERSION=1.0.0-snapshot
PIDFILE=. /pid/chatter .pid
SERVER=. /chatter- $VERSION\.jar
ARGS= "-Xms2g -Xmx4g -Xmn4g -Xss128k -XX:MaxPermSize=64m -XX:-UseParallelGC -XX:+UseParallelOldGC -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=30 -XX:SurvivorRatio=6"
# -Xms2g -Xmx2g -Xmn2g -Xss128k -XX:MaxPermSize=64m -XX:-UseParallelGC -XX:+UseParallelOldGC -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=30 -XX:SurvivorRatio=6
 
start()
{
     if  test  -f $PIDFILE
     then
         if  test  -d  /proc/ $( cat  $PIDFILE)
         then
             echo  "server has started"
             exit  1
         fi
     fi
     if  test  -e $SERVER
     then
         echo  "Starting $SERVER"
         if  java -jar $SERVER $ARGS >>. /logs/console .out 2>&1 &
         then
             sleep  2
             if  [[ -d  /proc/ $! ]];  then
                 echo  $! > $PIDFILE
                 echo  "server start OK"
             fi
         elif  java -jar $SERVER $ARGS >>. /logs/console .out 2>&1 &
         then
             sleep  2
             if  [[ -d  /proc/ $! ]];  then
                 echo  $! > $PIDFILE
                 echo  "server start OK"
             fi
         else
             echo  "server start failed"
             exit  1
         fi
     else
         echo  "Couldn't find $SERVER"
         exit  1
     fi
}
 
stop()
{
          if  test  -e $PIDFILE
          then
                    echo  "Stopping server"
                    if  kill  -TERM ` cat  $PIDFILE` >>. /logs/console .out 2>&1
                     then
                         sleep  2
                         if  test  -d  /proc/ $( cat  $PIDFILE)
                         then
                             echo  "server has started"
                             sleep  60
                         fi
                         echo  "server stop OK"
                         /bin/rm  $PIDFILE
                    elif
                     kill  -KILL ` cat  $PIDFILE` >>. /logs/console .out 2>&1
                     then
                         sleep  2
                         if  test  -d  /proc/ $( cat  $PIDFILE)
                         then
                             echo  "server has started"
                             sleep  60
                         fi
                         echo  "server stop OK"
                         /bin/rm  $PIDFILE
                    elif
                     kill  -9 ` cat  $PIDFILE` >>. /logs/console .out 2>&1
                     then
                         sleep  2
                         if  test  -d  /proc/ $( cat  $PIDFILE)
                         then
                             echo  "server has started"
                             sleep  60
                         fi
                         echo  "server stop OK"
                         /bin/rm  $PIDFILE
                    else
                         echo  "server stop failed"
                         exit  1
                    fi
          else
                    echo  "No server running"
                    exit  1
          fi
}
 
restart()
{
     echo  "Restarting server"
     stop
     start
}
 
case  $1  in
          start)
                 start
         ;;
          stop)
             stop
         ;;
          restart)
             restart
         ;;
          *)
             echo  "Usage: $0 {start|stop|restart}"  >&2
         exit  1
         ;;
esac
exit  0

第二版本(最后针对stop服务进程再次优化过的):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#!/bin/bash
#chkconfig: 345 86 14
#description: Startup and shutdown script for ChatterServer
VERSION=1.0.0-snapshot
PIDFILE=. /pid/chatter .pid
SERVER=. /chatter- $VERSION\.jar
ARGS= "-Xms2g -Xmx4g -Xmn4g -Xss128k -XX:MaxPermSize=64m -XX:-UseParallelGC -XX:+UseParallelOldGC -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=30 -XX:SurvivorRatio=6"
# -Xms2g -Xmx2g -Xmn2g -Xss128k -XX:MaxPermSize=64m -XX:-UseParallelGC -XX:+UseParallelOldGC -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=30 -XX:SurvivorRatio=6
 
start()
{
     if  test  -f $PIDFILE
     then
         if  test  -d  /proc/ $( cat  $PIDFILE)
         then
             echo  "server has started"
             exit  1
         fi
     fi
     if  test  -e $SERVER
     then
         echo  "Starting $SERVER"
         if  java -jar $SERVER $ARGS >>. /logs/console .out 2>&1 &
         then
             sleep  2
             if  [[ -d  /proc/ $! ]];  then
                 echo  $! > $PIDFILE
                 echo  "server start OK"
             fi
         elif  java -jar $SERVER $ARGS >>. /logs/console .out 2>&1 &
         then
             sleep  2
             if  [[ -d  /proc/ $! ]];  then
                 echo  $! > $PIDFILE
                 echo  "server start OK"
             fi
         else
             echo  "server start failed"
             exit  1
         fi
     else
         echo  "Couldn't find $SERVER"
         exit  1
     fi
}
 
stop()
{
          if  test  -e $PIDFILE
          then
                    echo  "Stopping server"
                    if  kill  -TERM ` cat  $PIDFILE` >>. /logs/console .out 2>&1
                     then
                         sleep  2
                         if  test  -d  /proc/ $( cat  $PIDFILE)
                         then
                             sleep  60
                         else
                             echo  "server stop OK"
                             /bin/rm  $PIDFILE
                         fi
                    elif
                     kill  -KILL ` cat  $PIDFILE` >>. /logs/console .out 2>&1
                     then
                         sleep  2
                         if  test  -d  /proc/ $( cat  $PIDFILE)
                         then
                             sleep  60
                         else
                             echo  "server stop OK"
                             /bin/rm  $PIDFILE
                         fi
                    elif
                     kill  -9 ` cat  $PIDFILE` >>. /logs/console .out 2>&1
                     then
                         while  [[ -d  /proc/ $( cat  $PIDFILE) ]];  do
                             sleep  1
                         done
                         if  test  -d  /proc/ $( cat  $PIDFILE)
                         then
                             echo  "server stop failed"
                             exit  1
                         else
                             echo  "server stop OK"
                             /bin/rm  $PIDFILE
                         fi
                    else
                         echo  "server stop failed"
                         exit  1
                    fi
          else
                    echo  "No server running"
                    exit  1
          fi
}
 
restart()
{
     echo  "Restarting server"
     stop
     start
}
 
case  $1  in
          start)
                 start
         ;;
          stop)
             stop
         ;;
          restart)
             restart
         ;;
          *)
             echo  "Usage: $0 {start|stop|restart}"  >&2
         exit  1
         ;;
esac
exit  0

--end--

====================================分割线======================================

运维经验分享作为一个专题,目前共7篇文章

  1. 运维经验分享(一)-- Linux Shell之ChatterServer服务控制脚本

  2. 运维经验分享(二)-- Linux Shell之ChatterServer服务控制脚本二次优化

  3. 运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行Shell脚本的问题(一)

  4. 运维经验分享(四)--关于 java进程管理的服务控制脚本编程思路分析

  5. 运维经验分享(五)-- 改进的java进程管理的服务控制脚本

  6. 运维经验分享(六)-- 深究crontab不能正确执行Shell脚本的问题(二)

  7. 运维经验分享(七)-- Linux Shell之ChatterServer服务控制脚本第三次优化

本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1677157

目录
相关文章
|
9月前
|
人工智能 运维 自然语言处理
别再靠“救火”过日子了:智能运维,正在重塑IT服务的未来
别再靠“救火”过日子了:智能运维,正在重塑IT服务的未来
1337 15
|
9月前
|
存储 人工智能 运维
别再靠脚本“救火”了!让智能数据治理接管你的运维世界
别再靠脚本“救火”了!让智能数据治理接管你的运维世界
421 14
|
11月前
|
存储 数据采集 搜索推荐
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
本篇文章探讨了 Java 大数据在智慧文旅景区中的创新应用,重点分析了如何通过数据采集、情感分析与可视化等技术,挖掘游客情感需求,进而优化景区服务。文章结合实际案例,展示了 Java 在数据处理与智能推荐等方面的强大能力,为文旅行业的智慧化升级提供了可行路径。
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
|
机器学习/深度学习 消息中间件 人工智能
别只会写脚本了!看看机器学习是怎么帮运维“摸鱼”的
别只会写脚本了!看看机器学习是怎么帮运维“摸鱼”的
294 13
|
9月前
|
JSON Java 数据格式
java调用服务报错400
java调用服务报错400
240 6
java调用服务报错400
|
9月前
|
JSON Java 数据格式
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
544 6
|
9月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
427 1
|
9月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
394 1
|
9月前
|
存储 运维 监控
57_大模型监控与运维:构建稳定可靠的服务体系
随着大语言模型(LLM)技术的快速发展和广泛应用,如何确保模型在生产环境中的稳定运行、高效服务和安全合规已成为企业和开发者面临的关键挑战。2025年,大模型服务已从实验室走向各行各业的核心业务流程,其运维复杂度也随之呈指数级增长。与传统软件系统不同,大模型服务具有参数规模庞大、计算密集、行为不确定性高等特点,这使得传统的运维监控体系难以满足需求。
1686 0
|
12月前
|
分布式计算 搜索推荐 算法
Java 大视界 -- Java 大数据在智慧养老服务需求分析与个性化服务匹配中的应用(186)
本篇文章探讨了Java大数据技术在智慧养老服务需求分析与个性化服务匹配中的应用。通过整合老年人健康数据与行为数据,结合机器学习与推荐算法,实现对老年人健康风险的预测及个性化服务推荐,提升养老服务的智能化与精准化水平,助力智慧养老高质量发展。