liuaiping0205 发表于 2014-06-19 17:09

多个终端同时运行一个python脚本

我有一个run.py的python脚本,这个脚本做的其中一件事情是将运行结果写到一个log文件中。

现在我可能在linux下面开多个终端,然后去运行这个run.py,如果不改代码,结果当然是log文件中记录的内容会被覆盖,

那我怎么解决这个问题,让多个(我不知道测试人员会开几个终端运行run.py)run.py运行,log文件能够正确记录每个run.py的结果?

icymirror 发表于 2014-06-19 18:30

回复 1# liuaiping0205
可以考虑写个Service脚本运行成服务,由这个Service脚本来负责写这个文件。
其它的run只是把内容写给这个service。

或者

log的文件名按照一个特定规则生成,确保不同的运行写到不同的文件。
(比如:是哪台机器运行的,log名字用:机器名-log名.log)

liuaiping0205 发表于 2014-06-19 19:04

回复 2# icymirror

觉得有点麻烦,这个问题的关键是不是如何确定当前系统上面会运行多少个run.py,我想在写入log之前去用ps取一下run.py的个数,最后去确定log的文件名个数为:“文件名-log.个数编号”.

   

icymirror 发表于 2014-06-20 06:12

回复 3# liuaiping0205
如果允许通过不同的文件名来做,你可以在run里面通过时间来生成文件名,比如:XXX(log文件名)-Day-Hour-Minute-Sec(sec是可选项).log

q1208c 发表于 2014-06-20 08:39

个数, 明显是个不靠谱的东西. 为什么不用 pid 呢?

同一时刻, 机器上运行的命令的 pid 肯定是不一样的. 所以, 这样写 run.pid.log 是不会冲突的.

liuaiping0205 发表于 2014-06-20 09:34

嗯,通过PID或者时间都是很好的方法。
页: [1]
查看完整版本: 多个终端同时运行一个python脚本