用Python監視程序是否結束

2022-08-03 07:57:13 字數 1383 閱讀 2965

不知道有什麼簡便的方法可以實現,只想到了用python寫個小指令碼(過去一直用python來解決一些小問題),於是去網上搜了python相關的類庫,其中os.system函式可以呼叫linux命令,初步想了下,準備用乙個執行緒來不斷執行ps命令,並檢查virtualbox的程序是否還存在,如果不存在了,就執行halt

不過嘗試了一下用os.system呼叫ps後,輸出的結果無法儲存到變數中,看了乙個帖子,發現os.popen可以解決,os.popen可以像開啟檔案一樣執行一條linux命令,命令返回的結果可以通過讀取檔案的方式獲得。

通過ps ax|grep

virtualbox|grep xp的組合命令可以得到正在執行xp的虛擬機器程序,其中xp是自己設定的虛擬機器的標題,一般得到的結果會有2條,1條就是虛擬機器程序,另1條是grep命令本身,所以當得到的結果只剩下grep命令本身時,說明虛擬機器已經關閉。

由於我用的linux發行版是ubuntu,執行關機命令需要sudo並且輸入密碼,所以要讓自動關機能夠實現還有一步是,設定使用者執行sudo不需要輸入密碼,這可以通過sudo visudosudoers檔案進行修改,在檔案最後加上chocobo all=(all) nopasswd: all其中chocobo是使用者名稱。

好了,準備工作都做完,就可以執行指令碼監視程序啦,具體**如下:

python

#!/usr/bin/env python

import

osimport

time

def autohalt(

): while

true: ps_string = os.popen

('ps ax | grep virtualbox | grep xp','r'

).read

() ps_strings = ps_string.strip

().split

('\n')if

len(ps_strings)

<

2: os.system

('sudo halt'

)return

else: print

'still',len

(ps_strings),'processes, waiting 10s...'

time.sleep(10

)if __name__=='__main__': autohalt(

)

用Python監視程序是否結束

不知道有什麼簡便的方法可以實現,只想到了用python寫個小指令碼 過去一直用python來解決一些小問題 於是去網上搜了python相關的類庫,其中os.system函式可以呼叫linux命令,初步想了下,準備用乙個執行緒來不斷執行ps命令,並檢查virtualbox的程序是否還存在,如果不存在了...

python程序結束

簡介 python戒lol各種軟體神器 使用方法 1.開啟任務管理器,選擇程序,右鍵 屬性 檢視程序名 2.把程序名新增進指令碼,taskmgr.exe是任務管理器的程序,防止檢視任務管理器 3.pythonw test.py 即可無視窗執行工具 4.設為開機自啟 import psutil imp...

用dos命令檢視程序和結束程序

taskkill f im explorer.exe 關閉explorer.exe程序 tasklist 命令用來顯示執行在本地或遠端計算機上的所有程序,帶有多個執行引數。使用格式 tasklist s system u username p password m module svc v fi f...