不知道有什麼簡便的方法可以實現,只想到了用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 visudo
對sudoers
檔案進行修改,在檔案最後加上chocobo all=(all) nopasswd: all
其中chocobo
是使用者名稱。
好了,準備工作都做完,就可以執行指令碼監視程序啦,具體**如下:
python
#!/usr/bin/env pythonimport
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...