os.fork()正常返回創(chuàng)建的子進程id,可以使用os.kill(pid,sig)殺死子進程。
os.kill(pid,sig)關閉一個進程,pid是進程號,sig是信號。與fork配合使用,例如你剛才用fork創(chuàng)建了一個子進程,它的pid是11990,那么調用os.kill(11990,signal.CTRL_BREAK_EVENT)就以ctrl+c的方式殺死了這個進程...
ubuntu下,也就是linux下,通常會用kill-事件編號實現(xiàn)。你查一下LINUX下的事件就明白了。kill進程號實現(xiàn)上是發(fā)了一個信號給指定的進程。在python里,也可以加載事件處理模塊,處理來自其它程序發(fā)過來的信號,當然你...
NP.start()os.kill(id,9)
subprocess可以開啟一個子線程,在子線程里面調用,在你需要的時候就可以把這個子線程關掉,這樣代碼也更靈活例如:p=subprocess.Popen("yourcommand")todoanythingyouwanttime.sleep(10)p.kill()這段代碼就是在"...
最后自己再退出。這是穩(wěn)妥的辦法。另外的辦法是,某一個子線程專用于監(jiān)控狀態(tài)。它發(fā)現(xiàn)狀態(tài)不對時,直接強制進程退出。辦法1,發(fā)消息給主進程,讓主進程退出。辦法2:用kill,pskill等方法,直接按進程PID殺進程。
用到threading的Timer,也類似單片機那樣子,在中斷程序中再重置定時器,設置中斷,python實例代碼如下:importthreadingimporttimedefchange_user():print('這是中斷,切換賬號')t=threading.Timer(3,change_user)t....
可以考慮改用subprocess這個庫來實現(xiàn)比如p=subprocess.Popen([‘yourcommand’,'paramsandoptions'])try:p.wait(my_timeout)exceptsubp.TimeoutExpired:p.kill()
os.system是執(zhí)行命令,是否打印取決于命令是否有返回如果你想不讓其打印可以在命令中做手腳如:os.system('taskkill/IMdllhost.exe>NUL')
os.system的返回值是運行結果,用p命名沒什么意義,建議用Popen比較好控制,例如importsubprocessa=subprocess.Popen('dir',shell=True)然后就可以用a.kill()來殺進程