Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to kill multiprocess parent program? #16

Open
daiguadaidai opened this issue Nov 15, 2017 · 0 comments
Open

How to kill multiprocess parent program? #16

daiguadaidai opened this issue Nov 15, 2017 · 0 comments

Comments

@daiguadaidai
Copy link

@daiguadaidai daiguadaidai commented Nov 15, 2017

I run program but can't kill parent proccess.

code:

#-*- coding:utf-8 -*-
from concurrent import futures
import os
import sys
import signal
 
def test(num):
    import time
    
    print os.getpid()
    time.sleep(100)
    return time.ctime(), num

def handle_interrupt(signum, frame):
    print 'CAUGHT SIGINT!!!!!!!!!!!!!!!!!!!'
    sys.exit(1)

def main():

    signal.signal(signal.SIGTERM, handle_interrupt) # kill
    signal.signal(signal.SIGINT, handle_interrupt)  # Ctrl+C
    signal.signal(signal.SIGQUIT, handle_interrupt) # Ctrl+\

    with futures.ProcessPoolExecutor(max_workers=3) as executor:
        print 'id:', id(executor)
        future1 = executor.submit(test,1)
        future2 = executor.submit(test,2)
        print future1
        print future1

        print future1.result()
        print future2.result()


if __name__ == '__main__':
    main()

run and press Ctrl + C can exit program:

python mul_future.py 
id: 140637338392144
<Future at 0x7fe8a35b8ad0 state=running>
<Future at 0x7fe8a35b8ad0 state=running>
2082
2083
^C
CAUGHT SIGINT!!!!!!!!!!!!!!!!!!!
CAUGHT SIGINT!!!!!!!!!!!!!!!!!!!
CAUGHT SIGINT!!!!!!!!!!!!!!!!!!!
CAUGHT SIGINT!!!!!!!!!!!!!!!!!!!

But use kill can't exit program

**session1:**run program:

python mul_future.py 
id: 140243206338128
<Future at 0x7f8cdf41aad0 state=running>
<Future at 0x7f8cdf41aad0 state=running>
2091
2092

**session2:**kill parent proccess:

ps -ef | grep python
root      2087  1910  0 21:32 pts/0    00:00:00 python mul_future.py
root      2091  2087  0 21:32 pts/0    00:00:00 python mul_future.py
root      2092  2087  0 21:32 pts/0    00:00:00 python mul_future.py
root      2093  2087  0 21:32 pts/0    00:00:00 python mul_future.py

kill 2087

ps -ef | grep python
root      2087  1910  0 21:32 pts/0    00:00:00 python mul_future.py
root      2091  2087  0 21:32 pts/0    00:00:00 python mul_future.py
root      2092  2087  0 21:32 pts/0    00:00:00 python mul_future.py
root      2093  2087  0 21:32 pts/0    00:00:00 python mul_future.py

what should i do?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.