View difference between Paste ID: 6cu9APE2 and
SHOW: | | - or go back to the newest paste.
1-
1+
from signal import SIGTERM
2
from sys import exit
3
from time import sleep
4
from os import *
5
6
def slow():
7
    fork()
8
    sleep(10)
9
10
def fast():
11
    sleep(1)
12
13
child_pids = []
14
#for child_func in [fast, slow, slow, fast]:
15
for child_func in [fast, fast]:
16
    pid = fork()
17
    if pid == 0:
18
        setsid()
19
        child_func()
20
        exit(0)
21
    else:
22
        print "spawned pgrp %d" % pid
23
        child_pids.append(pid)
24
25
(pid, status) = waitpid(-1, 0)
26
print "Reaped pid: %d, status: %d" % (pid, status)
27
for child_pid in child_pids:
28
    try:
29
        print popen('ps -e -o pid,ppid,pgid,state,command | grep -i python').read()
30
        print "killing pg %d" % child_pid
31
        killpg(child_pid, SIGTERM)
32
    except OSError, e:
33
        print "Error killing %s: %s" %(child_pid, e)