sonra localhost üzerinde html ve php sayfaları görüntülemek için gerekli tarayıcı yükler çağırır.os.system ve alt işlemi arasındaki fark bir yerel sunucuya bir web mimarisini oluşturan bir program oluşturduk
os.system
çağrı piton sürecini öldürür ama diğer işlemleri öldürmek değil - örneğin, httpd.exe
ve mysqld.exe
subprocess
çağrı httpd.exe
ve mysqld.exe
programları öldürür ama piton kod çalıştırmasına devam eder ve hiçbir kod, subprocess
aramasından sonra yürütülür.
yürütülür?
İşte kodum.
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() 'dan sonra httpd, mysqld'nin istenen çalışma durumu nedir? Httpd, mysqld komut dosyasının çıktıktan sonra çalışmaya devam etmesini istiyorsanız – jfs
; [DETACHED_PROCESS | kullanabilirsiniz CREATE_NEW_PROCESS_GROUP] (http://stackoverflow.com/a/13256908/4279) bayrağı. btw, 'shell = True' gerekmez. – jfs
httpd ve mysqld'in çalışma durumu gizlice çalıştırılmalıdır, bu çok kullanıcı dostu yapılmış, fazla pencerelere gerek yok. –