運維經驗分享作為一個專題,目前共7篇文章
====================================分割線======================================
最初版本(由别人寫的):
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
<code>#!/bin/sh</code>
<code>#chkconfig: 345 86 14</code>
<code>#description: startup and shutdown script for chatterserver</code>
<code>version=1.0.0-snapshot</code>
<code>pidfile=.</code><code>/pid/chatter</code><code>.pid</code>
<code>server=.</code><code>/chatter-</code><code>$version\.jar</code>
<code>args=</code><code>"-xms2g -xmx2g -xmn2g -xss128k"</code>
<code># -xms2g -xmx2g -xmn2g -xss128k -xx:maxpermsize=64m -xx:-useparallelgc -xx:+useparalleloldgc -xx:parallelgcthreads=4 -xx:+useconcmarksweepgc -xx:maxtenuringthreshold=30 -xx:survivorratio=6</code>
<code>start()</code>
<code>{</code>
<code> </code><code>if</code> <code>test</code> <code>-e $server</code>
<code> </code><code>then</code>
<code> </code><code>echo</code> <code>"starting $server"</code>
<code> </code><code>if</code> <code>java -jar $server $args >.</code><code>/logs/console</code><code>.out 2>&1 &</code>
<code> </code><code>then</code>
<code> </code><code>echo</code> <code>$! > $pidfile</code>
<code> </code><code>echo</code> <code>"server start ok"</code>
<code> </code><code>else</code>
<code> </code><code>echo</code> <code>"server start failed"</code>
<code> </code><code>fi</code>
<code> </code><code>else</code>
<code> </code><code>echo</code> <code>"couldn't find $server"</code>
<code> </code><code>fi</code>
<code>}</code>
<code>stop()</code>
<code> </code><code>if</code> <code>test</code> <code>-e $pidfile</code>
<code> </code><code>then</code>
<code> </code><code>echo</code> <code>"stopping server"</code>
<code> </code><code>if</code> <code>kill</code> <code>`</code><code>cat</code> <code>$pidfile` 2>.</code><code>/logs/console</code><code>.out</code>
<code> </code><code>then</code>
<code> </code><code>echo</code> <code>"server stop ok"</code>
<code> </code><code>else</code>
<code> </code><code>echo</code> <code>"server stop faild"</code>
<code> </code><code>fi</code>
<code> </code><code>else</code>
<code> </code><code>echo</code> <code>"no server running"</code>
<code> </code><code>fi</code>
<code>restart()</code>
<code> </code><code>echo</code> <code>"restarting server"</code>
<code> </code><code>stop</code>
<code> </code><code>start</code>
<code>case</code> <code>$1 </code><code>in</code>
<code> </code><code>start)</code>
<code> </code><code>start</code>
<code> </code><code>;;</code>
<code> </code><code>stop)</code>
<code> </code><code>stop</code>
<code> </code><code>restart)</code>
<code> </code><code>restart</code>
<code> </code><code>*)</code>
<code> </code><code>echo</code> <code>"usage: $scriptname {start|stop|restart|list}"</code> <code>>&2</code>
<code> </code><code>exit</code> <code>1</code>
<code>esac</code>
<code>exit</code> <code>0</code>
第一版本(我寫的):
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
<code>#!/bin/bash</code>
<code>args=</code><code>"-xms2g -xmx4g -xmn4g -xss128k -xx:maxpermsize=64m -xx:-useparallelgc -xx:+useparalleloldgc -xx:parallelgcthreads=4 -xx:+useconcmarksweepgc -xx:maxtenuringthreshold=30 -xx:survivorratio=6"</code>
<code> </code><code>if</code> <code>test</code> <code>-f $pidfile</code>
<code> </code><code>if</code> <code>test</code> <code>-d </code><code>/proc/</code><code>$(</code><code>cat</code> <code>$pidfile)</code>
<code> </code><code>echo</code> <code>"server has started"</code>
<code> </code><code>exit</code> <code>1</code>
<code> </code><code>if</code> <code>java -jar $server $args >>.</code><code>/logs/console</code><code>.out 2>&1 &</code>
<code> </code><code>sleep</code> <code>2</code>
<code> </code><code>if</code> <code>[[ -d </code><code>/proc/</code><code>$! ]]; </code><code>then</code>
<code> </code><code>echo</code> <code>$! > $pidfile</code>
<code> </code><code>echo</code> <code>"server start ok"</code>
<code> </code><code>fi</code>
<code> </code><code>elif</code> <code>java -jar $server $args >>.</code><code>/logs/console</code><code>.out 2>&1 &</code>
<code> </code><code>if</code> <code>kill</code> <code>-term `</code><code>cat</code> <code>$pidfile` >>.</code><code>/logs/console</code><code>.out 2>&1</code>
<code> </code><code>then</code>
<code> </code><code>sleep</code> <code>2</code>
<code> </code><code>if</code> <code>test</code> <code>-d </code><code>/proc/</code><code>$(</code><code>cat</code> <code>$pidfile)</code>
<code> </code><code>then</code>
<code> </code><code>echo</code> <code>"server has started"</code>
<code> </code><code>sleep</code> <code>60</code>
<code> </code><code>fi</code>
<code> </code><code>echo</code> <code>"server stop ok"</code>
<code> </code><code>/bin/rm</code> <code>$pidfile</code>
<code> </code><code>elif</code>
<code> </code><code>kill</code> <code>-kill `</code><code>cat</code> <code>$pidfile` >>.</code><code>/logs/console</code><code>.out 2>&1</code>
<code> </code><code>kill</code> <code>-9 `</code><code>cat</code> <code>$pidfile` >>.</code><code>/logs/console</code><code>.out 2>&1</code>
<code> </code><code>echo</code> <code>"server stop failed"</code>
<code> </code><code>exit</code> <code>1</code>
<code> </code><code>exit</code> <code>1</code>
<code> </code><code>echo</code> <code>"usage: $0 {start|stop|restart}"</code> <code>>&2</code>
第二版本(最後針對stop服務程序再次優化過的):
117
118
119
<code> </code><code>else</code>
<code> </code><code>/bin/rm</code> <code>$pidfile</code>
<code> </code><code>while</code> <code>[[ -d </code><code>/proc/</code><code>$(</code><code>cat</code> <code>$pidfile) ]]; </code><code>do</code>
<code> </code><code>sleep</code> <code>1</code>
<code> </code><code>done</code>
<code> </code><code>echo</code> <code>"server stop failed"</code>
<code> </code><code>exit</code> <code>1</code>
--end--