Process.kill method

Method Name:

kill

Method Signature:

kill()

Return Value:

NoneType

Parameters:

Not Applicable

Method Overview:

  • When invoked kill() uses SIGKILL and terminates the process.
  • When SIGKILL is used, the process does not know it has been issued a SIGKILL. The process cannot do any cleanup. The process is killed immediately.Remember, though miniscule it takes a finite time to kill the process.

 

Example:

import multiprocessing as multiproc

import time

 

def processFunction(mq):

    for i in range(1, 10, 2):

        msg = "Child:Message"

        mq.put(msg)

        print(msg)

        time.sleep(1)

   

if __name__ == "__main__":

    multiproc.set_start_method('fork')

    mq = multiproc.Queue()

    childProcess = multiproc.Process(target=processFunction, args=(mq,))

    childProcess.start()

    childProcess.kill()

    # It takes a while to completely terminate the process using SIGKILL

    print("Child process is alive: %s "%childProcess.is_alive());   

    print("Child process is alive: %s "%childProcess.is_alive());   

    print("Child process is alive: %s "%childProcess.is_alive());   

    print("Child process is alive: %s "%childProcess.is_alive());   

    print("Child process is alive: %s "%childProcess.is_alive());   

    print("Child process is alive: %s "%childProcess.is_alive());   

   

    while mq.empty() is False:

        print(mq.get()) # Bad practice

 

 

Output:

Child process is alive: True

Child process is alive: False

Child process is alive: False

Child process is alive: False

Child process is alive: False

Child process is alive: False


Copyright 2024 © pythontic.com