Exemplo n.º 1
0
def kill_managed_process(name):
    if name not in running or name not in managed_processes:
        return
    cloudlog.info("killing %s" % name)

    if running[name].exitcode is None:
        if name in interrupt_processes:
            os.kill(running[name].pid, signal.SIGINT)
        elif name in kill_processes:
            os.kill(running[name].pid, signal.SIGKILL)
        else:
            running[name].terminate()

        join_process(running[name], 5)

        if running[name].exitcode is None:
            if name in unkillable_processes:
                cloudlog.critical(
                    "unkillable process %s failed to exit! rebooting in 15 if it doesn't die"
                    % name)
                join_process(running[name], 15)
                if running[name].exitcode is None:
                    cloudlog.critical("unkillable process %s failed to die!" %
                                      name)
                    os.system("date >> /sdcard/unkillable_reboot")
                    HARDWARE.reboot()
                    raise RuntimeError
            else:
                cloudlog.info("killing %s with SIGKILL" % name)
                os.kill(running[name].pid, signal.SIGKILL)
                running[name].join()

    cloudlog.info("%s is dead with %d" % (name, running[name].exitcode))
    del running[name]
Exemplo n.º 2
0
def uninstall():
    cloudlog.warning("uninstalling")
    with open('/cache/recovery/command', 'w') as f:
        f.write('--wipe_data\n')
    # IPowerManager.reboot(confirm=false, reason="recovery", wait=true)
    HARDWARE.reboot(reason="recovery")
Exemplo n.º 3
0
 def do_reboot():
     time.sleep(2)
     HARDWARE.reboot()