[python]使用python进行LINUX系统操作
需求:在LINUX上做数据传输程序的时候,调试时经常强制中断服务器端程序,导致端口不能释放,下次启动服务器程序时就会端口被占而无法启动。通常是使用(list open file)lsof -i 6666来查看6666端口的程序信息,得到占用程序的PID后,再使用kill把它杀了。使用python脚本使得这样繁琐的工作变得十分简单。
import os import sys if len(sys.argv)>1: port=sys.argv[1] else: port='6666' tmp=os.popen('lsof -i:'+port).readlines() cmd='kill '+tmp[1].split()[1] os.system(cmd)
python里面有两种方法运行linux命令,都需要import os。第一种使用os.system(cmd),但此方法不能记录返回值,直接执行。第二使用(program open)os.popen(cmd).readlines(),返回值按行记录在一个list里。
使用sys.argv来查看脚本传递的参数。第一个参数固定为脚本的名称,因此我们传递的参数从sys.argv[1]开始。可以使用len(sys.argv)来检查有无传递额外参数。