运维经验分享(五)-- 改进的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

目录
相关文章
|
13天前
|
监控 搜索推荐 开发工具
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
|
5天前
|
人工智能 运维 Linux
AI驱动的操作系统服务体验:大模型时代的运维革新
AI驱动的操作系统服务体验:大模型时代的运维革新
22 5
|
22天前
|
运维 监控 Cloud Native
云原生之运维监控实践:使用 taosKeeper 与 TDinsight 实现对 时序数据库TDengine 服务的监测告警
在数字化转型的过程中,监控与告警功能的优化对保障系统的稳定运行至关重要。本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品之一,详细介绍了如何利用 TDengine、taosKeeper 和 TDinsight 实现对 TDengine 服务的状态监控与告警功能。作者通过容器化安装 TDengine 和 Grafana,演示了如何配置 Grafana 数据源、导入 TDinsight 仪表板、以及如何设置告警规则和通知策略。欢迎大家阅读。
51 0
|
1月前
|
运维 Kubernetes Devops
自动化运维:从脚本到工具的演进之旅
在数字化浪潮中,自动化运维成为提升效率、保障系统稳定的关键。本文将探索自动化运维的发展脉络,从基础的Shell脚本编写到复杂的自动化工具应用,揭示这一技术变革如何重塑IT运维领域。我们将通过实际案例,展示自动化运维在简化工作流程、提高响应速度和降低人为错误中的重要作用。无论你是初学者还是资深专家,这篇文章都将为你提供宝贵的洞见和实用的技巧。
|
2月前
|
运维 Devops
自动化运维:从脚本到DevOps的进化之旅
在数字化时代,自动化运维不仅是提高生产效率的关键,更是企业竞争力的象征。本文将带领读者穿越自动化运维的发展历程,从最初的脚本编写到现代DevOps文化的形成,揭示这一演变如何重塑IT行业的工作模式。通过具体案例,我们将展示自动化工具和实践如何简化复杂任务,优化流程,并促进团队协作。你将发现,自动化运维不仅关乎技术的进步,更体现了人、流程和技术三者之间协同增效的深层逻辑。
|
2月前
|
机器学习/深度学习 人工智能 运维
自动化运维之路:从脚本到工具的演进
在IT运维领域,效率和准确性是衡量工作成效的关键指标。随着技术的发展,自动化运维逐渐成为提升这两个指标的重要手段。本文将带领读者了解自动化运维的演变历程,从最初的简单脚本编写到现今复杂的自动化工具应用,展示如何通过技术提升运维效率。文章不仅介绍理论和实践案例,还提供了代码示例,帮助读者理解自动化运维的实际应用场景。
|
2月前
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。
|
2月前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
129 3
|
2月前
|
缓存 运维 NoSQL
python常见运维脚本_Python运维常用脚本
python常见运维脚本_Python运维常用脚本
38 3
|
2月前
|
运维 监控 应用服务中间件
自动化运维:如何利用Python脚本提升工作效率
【10月更文挑战第30天】在快节奏的IT行业中,自动化运维已成为提升工作效率和减少人为错误的关键技术。本文将介绍如何使用Python编写简单的自动化脚本,以实现日常运维任务的自动化。通过实际案例,我们将展示如何用Python脚本简化服务器管理、批量配置更新以及监控系统性能等任务。文章不仅提供代码示例,还将深入探讨自动化运维背后的理念,帮助读者理解并应用这一技术来优化他们的工作流程。

热门文章

最新文章