2015-12-05 15:05:03 +08:00
#!/usr/bin/env python
2017-08-08 16:36:23 -07:00
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
2018-07-12 17:38:43 +02:00
from __future__ import print_function
2015-12-05 15:05:03 +08:00
import os , sys
2017-03-06 04:15:48 +08:00
import subprocess
2015-12-05 15:05:03 +08:00
2017-03-06 04:15:48 +08:00
if len ( sys . argv ) != 4 :
2018-07-12 17:38:43 +02:00
print ( " usage: %s <hostfile> <user> <prog> " % sys . argv [ 0 ] )
2015-12-05 15:05:03 +08:00
sys . exit ( 1 )
host_file = sys . argv [ 1 ]
2017-03-06 04:15:48 +08:00
user = sys . argv [ 2 ]
prog_name = sys . argv [ 3 ]
2015-12-05 15:05:03 +08:00
kill_cmd = (
2017-03-06 04:15:48 +08:00
" ps aux | "
" grep -v grep | "
" grep ' " + prog_name + " ' | "
" awk ' { if($1== \" " + user + " \" )print $2;} ' | "
" xargs kill -9 "
2015-12-05 15:05:03 +08:00
)
2018-07-12 17:38:43 +02:00
print ( kill_cmd )
2015-12-05 15:05:03 +08:00
2017-03-06 04:15:48 +08:00
# Kill program on remote machines
with open ( host_file , " r " ) as f :
for host in f :
if ' : ' in host :
host = host [ : host . index ( ' : ' ) ]
2018-07-12 17:38:43 +02:00
print ( host )
2017-04-01 02:56:13 +09:00
subprocess . Popen ( [ " ssh " , " -oStrictHostKeyChecking=no " , " %s " % host , kill_cmd ] ,
shell = False ,
stdout = subprocess . PIPE ,
stderr = subprocess . PIPE )
2018-07-12 17:38:43 +02:00
print ( " Done killing " )
2017-03-06 04:15:48 +08:00
# Kill program on local machine
os . system ( kill_cmd )