Cara Memulakan Proses Latar Belakang Terpisah dalam Python
Apabila menukar skrip shell kepada Python, anda mungkin menghadapi keperluan untuk memulakan proses dalam latar belakang yang berterusan walaupun selepas skrip selesai. Untuk mencapai matlamat ini, anda boleh menggunakan modul subproses Python.
Menggunakan subproses.Popen
Fungsi subproses.Popen membolehkan anda melahirkan proses baharu. Untuk memulakan proses di latar belakang dan memisahkannya daripada proses induk, hantar argumen shell=True dan stderr=subprocess.STDOUT ke subprocess.Popen:
import subprocess subprocess.Popen(["command", "arg1", "arg2"], shell=True, stderr=subprocess.STDOUT)
Menggunakan garpu() Fungsi
Pilihan lain ialah menggunakan fungsi fork() untuk mencipta proses anak yang berjalan serentak dengan proses induk. Walau bagaimanapun, kaedah ini lebih maju dan memerlukan pengendalian isyarat dan sumber yang teliti.
Mengelakkan Penyekatan
Untuk mengelakkan proses induk daripada menyekat sementara menunggu proses anak untuk selesai, elakkan memanggil kaedah communicate() pada objek proses yang dikembalikan oleh Popen.
Contoh
Untuk memulakan proses yang berjalan sleep 30 di latar belakang, gunakan berikut:
import subprocess subprocess.Popen(["sleep", "30"])
Penjelasan
Dalam konteks ini, "latar belakang" merujuk kepada memulakan proses yang berjalan secara bebas daripada proses induk, tidak kira sama ada ia dimulakan dalam latar belakang cangkerang.
Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Proses Latar Belakang Menggunakan Modul `subproses` Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!