2009-04-17 36 views

Trả lời

1

Bạn có thể lấy đi bằng cách đọc ID quá trình cha mẹ của bạn rất sớm trong quá trình của bạn, và sau đó kiểm tra, nhưng tất nhiên đó là dễ bị điều kiện chủng tộc. Cha mẹ đã sinh sản có thể đã chết ngay lập tức, và ngay cả trước khi quá trình của bạn đã thực hiện lệnh đầu tiên của nó.

Trừ khi bạn có cách xác minh xem một PID cụ thể có liên quan đến phụ huynh "được mong đợi" hay không, tôi nghĩ thật khó để thực hiện một cách đáng tin cậy.

3

Nếu quy trình Python của bạn đang chạy dưới Linux và cuộc gọi hệ thống prctl() được hiển thị, bạn có thể sử dụng câu trả lời here.

Điều này có thể gây ra tín hiệu được gửi tới trẻ khi quá trình cha mẹ chết.

1

Cách đáng tin cậy duy nhất tôi biết là tạo một đường ống đặc biệt cho mục đích này. Đứa trẻ sẽ phải liên tục cố gắng đọc từ ống, tốt nhất là trong thời trang không bị chặn hoặc sử dụng lựa chọn. Nó sẽ nhận được một lỗi khi các đường ống không tồn tại nữa (có lẽ vì cái chết của cha mẹ).

1

Giả sử cha mẹ còn sống khi bạn bắt đầu để làm điều này, bạn có thể kiểm tra xem nó vẫn còn sống trong một vòng lặp bận rộn như vậy, bằng cách sử dụng psutil:

import psutil, os, time 
me = psutil.Process(os.getpid()) 
while 1: 
    if me.parent is not None: 
     # still alive 
     time.sleep(0.1) 
     continue 
    else: 
     print "my parent is gone" 

Không rất đẹp nhưng ...

Các vấn đề liên quan