今天被运维发现我写的linux脚本的进程占满了屏幕,:)。被贴到群里了。长个记性。
怎么在脚本运行前查看一下是否已经在运行了,如果已经在运行了,应该提示程序已经在运行。demo代码贴出来。
import os
import re
# execute command, and return the infomation. 执行命令并返回命令输出信息
def execCmd(cmd):
r = os.popen(cmd)
text = r.read()
r.close()
return text
def doSomething():
print("start Running")
if __name__ == '__main__':
#ps -ef是linux查看进程信息指令,|是管道符号导向到grep去查找特定的进程,最后一个|是导向grep过滤掉grep进程:因为grep查看程序名也是进程,会混到查询信息里
programIsRunningCmd="ps -ef|grep python\ programName|grep -v grep"
programIsRunningCmdAns = execCmd(programIsRunningCmd) #调用函数执行指令,并返回指令查询出的信息
ansLine = programIsRunningCmdAns.split('\n') #将查出的信息用换行符‘\b’分开
#判断如果返回行数>2则说明python脚本程序已经在运行,打印提示信息结束程序,否则运行脚本代码doSomething()
if len(ansLine) > 2:
print("programName have been Running")
else:
doSomething()
ps命令详解:https://www.jianshu.com/p/cba22cce2f97
linux中ctrl-c, ctrl-z, ctrl-d 区别 https://www.cnblogs.com/klcf0220/p/6125777.html