Jump to >

djblets.util.contextmanagers

kill_process(pid)[source]

Kill a process.

controlled_subprocess(*args, **kwds)[source]

A context manager for a subprocess that guarantees that a process is terminated, even if exceptions are thrown while using it.

The process_name argument is used for logging when the process goes down fighting. The process argument is a process returned by subprocess.Popen.

Example usage:

process = subprocess.Popen([‘patch’, ‘-o’, newfile, oldfile])

with controlled_subprocess(“patch”, process) as p:
# … do things with the process p

Once outside the with block, you can rest assured that the subprocess is no longer running.