Search code examples
python-2.7multiprocessingeasygui

Closing a running program from a process


How can I close a program from a child process? For exanple:

import easygui
import multiprocessing

def func():
    reply=easygui.buttonbox("start?",image="F:\project\phonber.png",choices=['yes','no'])
    if reply=="yes":
        exit_option()


if __name__=='__main__':
    p=multiprocessing.Process(target=func,args=())
    t=p.start()
    while True:
        None

Is there a way to execute the exit_option() ?


Solution

  • Your forgot to actually call the function:

    import easygui
    import multiprocessing
    
    def func():
        reply=easygui.buttonbox("start?",image="F:\project\phonber.png",choices=['yes','no'])
        if reply=="yes":
            exit_option()
    
    func()
    
    
    if __name__=='__main__':
        p=multiprocessing.Process(target=func,args=())
        t=p.start()
        while True:
            None
    

    Then, to actually kill a running process there are, of course, many options. The most obvious ones being psutil its kill or terminate method, or os its kill method. Both as shown here.