1 | #!/boot/common/bin/python
|
---|
2 | #
|
---|
3 | # Copyright (c) 2009
|
---|
4 | # Leszek Lesner. All rights reserved. Released under the BSD License.
|
---|
5 | #
|
---|
6 | # Redistribution and use in source and binary forms, with or without
|
---|
7 | # modification, are permitted provided that the following conditions
|
---|
8 | # are met:
|
---|
9 | # 1. Redistributions of source code must retain the above copyright
|
---|
10 | # notice, this list of conditions and the following disclaimer.
|
---|
11 | # 2. Redistributions in binary form must reproduce the above copyright
|
---|
12 | # notice, this list of conditions and the following disclaimer in the
|
---|
13 | # documentation and/or other materials provided with the distribution.
|
---|
14 | # 3. All advertising materials mentioning features or use of this software
|
---|
15 | # must display the following acknowledgement:
|
---|
16 | # This product includes software developed by Leszek Lesner.
|
---|
17 | # 4. Neither the name of the Author
|
---|
18 | # may be used to endorse or promote products derived from this software
|
---|
19 | # without specific prior written permission.
|
---|
20 | #
|
---|
21 | # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
---|
22 | # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
---|
23 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
---|
24 | # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
---|
25 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
---|
26 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
---|
27 | # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
---|
28 | # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
---|
29 | # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
---|
30 | # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
---|
31 | # SUCH DAMAGE.
|
---|
32 | #/
|
---|
33 |
|
---|
34 | import commands
|
---|
35 | import os,sys,string
|
---|
36 | import re
|
---|
37 |
|
---|
38 | def pkill():
|
---|
39 | if len(sys.argv) <= 1:
|
---|
40 | print "usage: " + sys.argv[0] + " process_name"
|
---|
41 | sys.exit(1)
|
---|
42 | rip = sys.argv[1]
|
---|
43 | me = commands.getoutput("whoami")
|
---|
44 | p = commands.getoutput("ps")
|
---|
45 | # DEBUG print p
|
---|
46 | ids = p.split("\n")
|
---|
47 | for id in ids:
|
---|
48 | if id.find(rip) < 0:
|
---|
49 | continue
|
---|
50 | regex = re.compile(r'(\d+).*',re.I)
|
---|
51 | id = regex.sub(r'\1', id)
|
---|
52 | print "killing: %s\n" % id
|
---|
53 | commands.getoutput("kill -15 %s" % id)
|
---|
54 | if commands.getoutput("ps").find(id) > -1:
|
---|
55 | print "try killing hardly: %s\n" % id
|
---|
56 | commands.getoutput("kill -9 %s" % id)
|
---|
57 | if __name__ == '__main__' :
|
---|
58 | pkill()
|
---|