pythonprocessterminate

Terminate a python script from another python script


I've got a long running python script that I want to be able to end from another python script. Ideally what I'm looking for is some way of setting a process ID to the first script and being able to see if it is running or not via that ID from the second. Additionally, I'd like to be able to terminate that long running process.

Any cool shortcuts exist to make this happen?

Also, I'm working in a Windows environment.

I just recently found an alternative answer here: Check to see if python script is running


Solution

  • You could get your own PID (Process Identifier) through

    import os
    os.getpid()
    

    and to kill a process in Unix

    import os, signal
    os.kill(5383, signal.SIGKILL)
    

    to kill in Windows use

    import subprocess as s
    def killProcess(pid):
        s.Popen('taskkill /F /PID {0}'.format(pid), shell=True)
    

    You can send the PID to the other programm or you could search in the process-list to find the name of the other script and kill it with the above script.

    I hope that helps you.