f3a947ada4733309352280bbc9407f5794196229
[WebKit-https.git] / Tools / BuildSlaveSupport / kill-old-processes
1 #!/usr/bin/python\r
2 # Copyright (C) 2010 Apple Inc.  All rights reserved.\r
3 # Copyright (C) 2011 Google Inc.  All rights reserved.\r
4 #\r
5 # Redistribution and use in source and binary forms, with or without\r
6 # modification, are permitted provided that the following conditions\r
7 # are met:\r
8 #\r
9 # 1.  Redistributions of source code must retain the above copyright\r
10 #     notice, this list of conditions and the following disclaimer.\r
11 # 2.  Redistributions in binary form must reproduce the above copyright\r
12 #     notice, this list of conditions and the following disclaimer in the\r
13 #     documentation and/or other materials provided with the distribution.\r
14 #\r
15 # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY\r
16 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
17 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
18 # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY\r
19 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
20 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
21 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\r
22 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
23 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
24 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
25 \r
26 import os, sys\r
27 \r
28 \r
29 def main():\r
30     tasksToKillWin = [\r
31         "cl.exe",\r
32         "devenv.com",\r
33         "devenv.exe",\r
34         "DumpRenderTree.exe",\r
35         "DumpRenderTree_debug.exe",\r
36         "httpd.exe",\r
37         "imagediff.exe",\r
38         "imagediff_debug.exe",\r
39         "jsc.exe",\r
40         "jsc_debug.exe",\r
41         "LightTPD.exe",\r
42         "link.exe",\r
43         "midl.exe",\r
44         "perl.exe",\r
45         "Safari.exe",\r
46         "svn.exe",\r
47         "testapi.exe",\r
48         "testapi_debug.exe",\r
49         "VcBuildHelper.exe",\r
50         "wdiff.exe",\r
51         "WebKit2WebProcess.exe",\r
52         "WebKit2WebProcess_debug.exe",\r
53         "WebKitTestRunner.exe",\r
54         "WebKitTestRunner_debug.exe",\r
55     ]\r
56 \r
57     tasksToKillMac = [\r
58         "cc1plus",\r
59         "cc1objplus",\r
60         "clang",\r
61         "clang++",\r
62         "gcc-4.2",\r
63         "i686-apple-darwin10-gcc-4.2.1"\r
64         "jsc",\r
65         "make",\r
66         "per5.12",\r
67         "perl",\r
68         "Problem Reporter",\r
69         "ruby",\r
70         "Safari Web Content",\r
71         "Safari",\r
72         "svn",\r
73         "DumpRenderTree",\r
74         "TestWebKitAPI Web Content",\r
75         "TestWebKitAPI",\r
76         "WebKitPluginAgen", # FIXME: Why no 't'?\r
77         "WebKitTestRunner Web Content",\r
78         "WebKitTestRunner",\r
79         "WebProcess",\r
80         "xcodebuild",\r
81     ]\r
82 \r
83     if sys.platform == 'darwin':\r
84         for task in tasksToKillMac:\r
85             os.system("killall -9 -v -m " + task)\r
86         # Kill all instances of python executing run-webkit-tests\r
87         os.system("ps aux | grep -P '.+/Python .+(run_webkit_tests|run-webkit-tests)' | grep -v grep | awk '{print $2}' | xargs kill")\r
88     elif sys.platform == 'cygwin' or sys.platform == 'win32':\r
89         for task in tasksToKillWin:\r
90             os.system("taskkill /t /f /im " + task)\r
91     else:\r
92         sys.exit()\r
93         # FIXME: Should we return an exit code based on how the kills went?\r
94 \r
95 \r
96 if __name__ == '__main__':\r
97     sys.exit(main())\r