बस सोच रहा है कि कोई मेरी मदद कर सकता है या नहीं। मेरी समस्या यह है कि मैं os.fork() को जानकारी के कई बिट प्राप्त करने और उन्हें एक फ़ाइल में भेजने के लिए, लेकिन यह देखने के लिए जांच कर रहा हूं कि कांटा प्रक्रिया काम नहीं कर रही है या नहीं।पाइथन जांच अगर एक कांटा() प्रक्रिया समाप्त हो जाती है
import sys
import time
import os
import re
ADDRESS = argv[1]
sendBytes = argv[2]
proID2 = os.fork()
if proID2 == 0:
os.system('ping -c 20 ' + ADDRESS + ' > testStuff2.txt')
os._exit(0)
print proID2
finn = True
while finn == True:
time.sleep(1)
finn = os.path.exists("/proc/" + str(proID2))
print os.path.exists("/proc/" + str(proID2))
print 'eeup out of it ' + str(proID2)
मुझे लगता है कि os.path.exists() शायद उपयोग करने के लिए सही बात नहीं है।
धन्यवाद।
/proc/###/के अस्तित्व की जांच करना कोई अच्छा समाधान नहीं है। पीआईडी कैसे मुद्दों को परिभाषित नहीं किया जाता है। आपके बच्चे को समाप्त करने के बाद, अगली प्रक्रिया शुरू हुई (जो आपके आवेदन से पूरी तरह से स्वतंत्र हो सकती है) * * एक ही पीआईडी प्राप्त कर सकती है। आम तौर पर, उन्हें एक बदलाव में जारी किया जाता है, इसलिए मौजूदा कर्नेल के साथ आपका समाधान हर समय अधिकतर काम करेगा, लेकिन आप भविष्य के कर्नेल संस्करणों या विशेष मामलों में जैसे कि आप कंप्यूटर को नींद मोड में डालते हैं, या यदि आपके मामले में सुनिश्चित नहीं हो सकते हैं नेटवर्क अंतराल, एक गैर-प्रतिक्रिया सर्वर या इसी तरह के कारण एप्लिकेशन कुछ समय तक रुक रहा है। – Alfe