jenkins输出中控台乱序的解决方法,以及执行python过程中需要执行linux指令乱序的方法
很多人也会有这个疑问,就是在Jenkins内的一些输出指令通常都是顺序不对,特别是在操作有Linux指令或者是执行shell脚本的时候。
有时候,突然就串出了其他在执行的指令。
这就很头大了。
那么现在就讲下如何解决:
1、输出的乱序问题
答:通过刷新标准来修复它。
在python2中,可以如下操作:
print("hello",flush=True)
在Python3中,可以如下操作:
print "Hello" sys,stdout.flush()
这样就可以通过提升刷新的频率和频次及时刷新出要用的print打印信息
2、执行乱序的问题
在执行linux的一些指令或者是shell脚本的时候,Python在执行完以后,其他他没有等待这个指令是否已经完成的操作,所以这里最好是使用subprocess.run
然后写一个while循环确认其返回的returncode,这里是指执行完成的子进程。
t = subprocess.run('cd /data/Server/BinServer/;tar -xvf %s' % res_file, shell=True) while True: print(t, flush=True) # time.sleep(60) if t.returncode == 0: # time.sleep(1) break
好了,这个坑也讲解完毕。