annotate scripts-java/StopProcess.py @ 122:ad73eacf560a default tip

remove warning
author e095732
date Thu, 07 Feb 2013 22:32:26 +0900
parents cdc08d4722ec
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
cdc08d4722ec scripts
fuchita
parents:
diff changeset
1 #! /usr/bin/env python
cdc08d4722ec scripts
fuchita
parents:
diff changeset
2 """find and kill processes
cdc08d4722ec scripts
fuchita
parents:
diff changeset
3 """
cdc08d4722ec scripts
fuchita
parents:
diff changeset
4 import pexpect
cdc08d4722ec scripts
fuchita
parents:
diff changeset
5 import re
cdc08d4722ec scripts
fuchita
parents:
diff changeset
6 import sys
cdc08d4722ec scripts
fuchita
parents:
diff changeset
7 import os
cdc08d4722ec scripts
fuchita
parents:
diff changeset
8
cdc08d4722ec scripts
fuchita
parents:
diff changeset
9 def main(proc):
cdc08d4722ec scripts
fuchita
parents:
diff changeset
10 child = pexpect.spawn('ps aucxwww')
cdc08d4722ec scripts
fuchita
parents:
diff changeset
11 child.setwinsize(100,300)
cdc08d4722ec scripts
fuchita
parents:
diff changeset
12 child.expect(pexpect.EOF)
cdc08d4722ec scripts
fuchita
parents:
diff changeset
13
cdc08d4722ec scripts
fuchita
parents:
diff changeset
14 pslist = child.before.splitlines()
cdc08d4722ec scripts
fuchita
parents:
diff changeset
15 # separate string by space
cdc08d4722ec scripts
fuchita
parents:
diff changeset
16 fmt = re.split(' +', pslist[0])
cdc08d4722ec scripts
fuchita
parents:
diff changeset
17
cdc08d4722ec scripts
fuchita
parents:
diff changeset
18 if fmt[-1] == '':
cdc08d4722ec scripts
fuchita
parents:
diff changeset
19 fmt.pop()
cdc08d4722ec scripts
fuchita
parents:
diff changeset
20 if fmt[0] == '':
cdc08d4722ec scripts
fuchita
parents:
diff changeset
21 fmt.pop(0)
cdc08d4722ec scripts
fuchita
parents:
diff changeset
22 lenfmt = len(fmt)
cdc08d4722ec scripts
fuchita
parents:
diff changeset
23
cdc08d4722ec scripts
fuchita
parents:
diff changeset
24 # indexing, key is format of output of ps command, value is number of list
cdc08d4722ec scripts
fuchita
parents:
diff changeset
25 index = dict([(k,v) for (k,v) in zip(fmt, range(0,lenfmt))])
cdc08d4722ec scripts
fuchita
parents:
diff changeset
26
cdc08d4722ec scripts
fuchita
parents:
diff changeset
27 # find ".*<processname>.*" in 'COMMAND' part
cdc08d4722ec scripts
fuchita
parents:
diff changeset
28 pars = re.compile(".*"+proc+".*")
cdc08d4722ec scripts
fuchita
parents:
diff changeset
29
cdc08d4722ec scripts
fuchita
parents:
diff changeset
30 for l in pslist[1:]:
cdc08d4722ec scripts
fuchita
parents:
diff changeset
31 elm = re.split(' +',l ,lenfmt)
cdc08d4722ec scripts
fuchita
parents:
diff changeset
32 cmd = elm[index['COMMAND']]
cdc08d4722ec scripts
fuchita
parents:
diff changeset
33 result = pars.match(cmd)
cdc08d4722ec scripts
fuchita
parents:
diff changeset
34
cdc08d4722ec scripts
fuchita
parents:
diff changeset
35 if (result is not None):
cdc08d4722ec scripts
fuchita
parents:
diff changeset
36 os.system('kill -KILL ' + elm[index['PID']])
cdc08d4722ec scripts
fuchita
parents:
diff changeset
37 print 'stop', elm[index['PID']], ':', cmd
cdc08d4722ec scripts
fuchita
parents:
diff changeset
38
cdc08d4722ec scripts
fuchita
parents:
diff changeset
39
cdc08d4722ec scripts
fuchita
parents:
diff changeset
40 if __name__== "__main__":
cdc08d4722ec scripts
fuchita
parents:
diff changeset
41 if (len(sys.argv) != 2):
cdc08d4722ec scripts
fuchita
parents:
diff changeset
42 print "Usage : %s <process_name>" % sys.argv[0]
cdc08d4722ec scripts
fuchita
parents:
diff changeset
43 sys.exit(1)
cdc08d4722ec scripts
fuchita
parents:
diff changeset
44
cdc08d4722ec scripts
fuchita
parents:
diff changeset
45 main(sys.argv[1])
cdc08d4722ec scripts
fuchita
parents:
diff changeset
46