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。