Python腳本運行dhcpsrc.exe, 打印log數據。然後再殺死這個進程。
#!/usr/bin/env python
# coding=utf-8
import os
import sys
import subprocess
import time
import logging
taskkill = os.getenv('SYSTEMROOT')+'/System32/taskkill.exe'
currentDir = os.path.split( os.path.realpath("__file__") )[0]
logging.info(currentDir)
currentDir = currentDir + '/system/app_data/2.0/ksdk_demo/lwip_dhcp_bm/tool/dhcpsrv.exe -runapp'
logging.info(currentDir)
p = subprocess.Popen(currentDir)
time.sleep(20)
os.system(taskkill+' /T /F /pid '+ str(p.pid))
1.
taskkill = os.getenv(‘SYSTEMROOT’)+’/System32/taskkill.exe’
詳解
os.getenv()和os.putenv()函數分別用來讀取和設置環境變量。
WINDOWS系統環境變量:
%SYSTEMROOT% 系統 返回 Windows XP 根目錄的位置。
taskkill.exe 意爲進程殺手,用來殺掉頑固進程,比如木馬和病毒進程不能結束的時候可以配合PID(進程表示符:任務管理器—進程–查看–PID)殺掉
2.
currentDir = os.path.split( os.path.realpath(“file“) )[0]
詳解
os.path.split(fileName)的作用是分割fileName獲得路徑和文件名,返回值是一個列表; #返回目錄路徑和文件名的元組
Example
os.path.split(“/root/python/zip.py”)
得到:(‘/root/python’, ‘zip.py’)
詳解
__file__
__file__ 是用來獲得模塊所在的路徑的,這可能得到的是一個相對路徑。
os.path.realpath(file),得到絕對路徑。
3.
import logging
logging.info(currentDir)
詳解
python 的日誌logging模塊學習
簡單的將日誌打印到屏幕
logging.info(‘This is info message’)
4.
import subprocess
p = subprocess.Popen(currentDir)
詳解
從python2.4版本開始,可以用subprocess這個模塊來產生子進程,並連接到子進程的標準輸入/輸出/錯誤中去,還可以得到子進程的返回值。
5.
import time
time.sleep(20)
詳解
Python 編程中使用 time 模塊可以讓程序休眠,具體方法是time.sleep(秒數),其中“秒數”以秒爲單位,可以是小數,0.1秒則代表休眠100毫秒。
6.
os.system(taskkill+’ /T /F /pid ‘+ str(p.pid))
詳解
os模塊中的system()函數可以方便地運行其他程序或者腳本。其函數原型如下所示:
os.system(command)
其參數含義如下所示:
command 要執行的命令,相當於在Windows的cmd窗口中輸入的命令。如果要向程序或者腳本傳遞參數,可以使用空格分隔程序及多個參數。
Example
向記事本傳遞參數,打開python.txt文件
os.system(‘notepad python.txt’)
詳解
taskkill是用來終止進程的。具體的命令規則如下:
/F 指定要強行終止的進程。
/T Tree kill: 終止指定的進程和任何由此啓動的子進程。
/PID process id 指定要終止的進程的PID。