linux下Qt關閉第三方程式
阿新 • • 發佈:2019-01-05
環境:ubuntu16.04
Qt5.9
最近在開發過程中,需要通過Qt來開啟和關閉第三方應用,使用QProcess類返回的PID和使用top命令檢視到的程序ID不一樣,不知道是不是用錯了類方法。後來在網上查到可以用pkill來關閉程序。
pkill命令可以按照程序名殺死程序。pkill和應用方法差不多,也是直接殺死執行中的程式;如果您想殺掉單個程序,請用kill來殺掉。
語法
pkill(選項)(引數)
選項
-o:僅向找到的最小(起始)程序號傳送訊號; -n:僅向找到的最大(結束)程序號傳送訊號; -P:指定父程序號傳送訊號; -g:指定程序組; -t:指定開啟程序的終端。
引數
程序名稱:指定要查詢的程序名稱,同時也支援類似 grep指令中的匹配模式。
例項
pgrep -l gaim 2979 gaim pkill gaim
也就是說:kill對應的是PID,pkill對應的是。
綜上,在使用Qt時,可以使用QProcess類中的啟動程序函式來呼叫這個命令。
比如我要kill掉omxplayer這個播放器程序,就可以
Qprocess::execute("pkill omxplayer");
或者QProcess::start("pkill omxplayer");執行pkill來關掉omxplayer這個程序。
QProcess::start()和QProcess::execute()都能完成啟動外部程式的任務,但是區別很大,start()是非阻塞的,而execute()是阻塞的。