Python腳本運行dhcpsrc.exe

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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章