Android: kill all adb instances before trying to restart usb.

On some bots, there are adb instances left over from previous runs.
They don't play well with restarting the usb, and devices eventually "disappear".
This tries to kill all adb instances before restarting usb.

BUG=311058
TBR=navabi@chromium.org

Review URL: https://codereview.chromium.org/39833003

git-svn-id: http://src.chromium.org/svn/trunk/src/build@231035 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This commit is contained in:
bulach@chromium.org 2013-10-25 16:32:43 +00:00
Родитель 142dc0f199
Коммит 534b8e120a
1 изменённых файлов: 21 добавлений и 0 удалений

Просмотреть файл

@ -8,6 +8,8 @@
import logging import logging
import optparse import optparse
import os import os
import psutil
import signal
import smtplib import smtplib
import subprocess import subprocess
import sys import sys
@ -241,6 +243,24 @@ def RestartUsb():
return 0 return 0
def KillAllAdb():
def GetAllAdb():
for p in psutil.process_iter():
if 'adb' in p.name or 'adb' in ' '.join(p.cmdline):
yield p
for sig in [signal.SIGTERM, signal.SIGQUIT, signal.SIGKILL]:
for p in GetAllAdb():
try:
print 'kill %d %d (%s [%s])' % (sig, p.pid, p.name,
' '.join(p.cmdline))
p.send_signal(sig)
except psutil.error.NoSuchProcess:
pass
for p in GetAllAdb():
print 'Unable to kill %d (%s [%s])' % (p.pid, p.name, ' '.join(p.cmdline))
def main(): def main():
parser = optparse.OptionParser() parser = optparse.OptionParser()
parser.add_option('', '--out-dir', parser.add_option('', '--out-dir',
@ -257,6 +277,7 @@ def main():
parser.error('Unknown options %s' % args) parser.error('Unknown options %s' % args)
if options.restart_usb: if options.restart_usb:
KillAllAdb()
rc = RestartUsb() rc = RestartUsb()
if rc: if rc:
return 1 return 1