मैंने एक प्रोग्राम बनाया है जो स्थानीय सर्वर में एक वेब आर्किटेक्चर बनाता है, फिर स्थानीय ब्राउज़र पर HTML और php पृष्ठों को प्रदर्शित करने के लिए आवश्यक ब्राउज़र लोड करता है।os.system और subprocess कॉल के बीच का अंतर
os.system
कॉल अजगर प्रक्रिया को मारता है, लेकिन अन्य प्रक्रियाओं को बंद नहीं करता है - उदाहरण के लिए, httpd.exe
और mysqld.exe
subprocess
कॉल httpd.exe
और mysqld.exe
कार्यक्रमों को मारता है, लेकिन अजगर कोड को चलाने के लिए जारी है, और कोई कोड subprocess
कॉल के बाद निष्पादित करता है।
पायथन कोड निष्पादित होने के बाद मैं सभी आवश्यक प्रक्रियाओं को मारने या छिपाने के बारे में कैसे जाऊं?
मेरा कोड यहां है।
os.makedirs(dr + x + '/admin' + '/css')
dobj = open(dr + x + '/admin' + '/css' + '/style.css', 'w')
dobj.close()
del dobj
os.makedirs(dr + x + '/admin' + '/js')
os.makedirs(dr + x + '/admin' + '/img')
################################################################################
## THE OS SYSTEM CALLS CLOSE THE APP BUT OPEN THE PROCESSES
## AND THE SUBPROCESS CALLS CLOSE BOTH PROCESSES AND LEAVES THE APP OPEN
## CANT WIN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
os.makedirs(dr + x + '/admin' + '/conf')
#os.system(r'C:\\xampp\\apache\\bin\\httpd.exe')
#os.system(r'C:\\xampp\\mysql\\bin\\mysqld.exe')
subprocess.Popen(['C:\\xampp\\apache\\bin\\httpd.exe'], shell=True, creationflags=subprocess.SW_HIDE)
subprocess.Popen(['C:\\xampp\\mysql\\bin\\mysqld.exe'], shell=True, creationflags=subprocess.SW_HIDE)
webbrowser.open('localhost/' + x)
sys.exit()
################################################################################
else:
backmaybe = raw_input('Already Exists... Try Again? (Y/N) ')
if backmaybe == 'y':
start()
else:
sys.exit()
'sys.exit()' के बाद httpd, mysqld की वांछित चल रही स्थिति क्या है? – jfs
यदि आप httpd चाहते हैं, तो आपकी स्क्रिप्ट के बाद mysqld चलना जारी रखें; आप [DETACHED_PROCESS | का उपयोग कर सकते हैं CREATE_NEW_PROCESS_GROUP] (http://stackoverflow.com/a/13256908/4279) ध्वज। बीटीडब्ल्यू, आपको 'खोल = सही' की आवश्यकता नहीं है। – jfs
httpd और mysqld की चलती स्थिति चुपचाप चलनी चाहिए, ive ने इसे बहुत उपयोगकर्ता के अनुकूल बनाया है, किसी भी अतिरिक्त विंडो की आवश्यकता नहीं है। –