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

 

好了,这个坑也讲解完毕。

posted @ 2021-12-11 14:08  黑羽青衣  阅读(281)  评论(0编辑  收藏  举报