1. 程式人生 > >linux下Qt關閉第三方程式

linux下Qt關閉第三方程式

環境: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()是阻塞的。