免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5091 | 回复: 5
打印 上一主题 下一主题

多个终端同时运行一个python脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-19 17:09 |只看该作者 |倒序浏览
我有一个run.py的python脚本,这个脚本做的其中一件事情是将运行结果写到一个log文件中。

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

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

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
2 [报告]
发表于 2014-06-19 18:30 |只看该作者
回复 1# liuaiping0205
可以考虑写个Service脚本运行成服务,由这个Service脚本来负责写这个文件。
其它的run只是把内容写给这个service。

或者

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

论坛徽章:
0
3 [报告]
发表于 2014-06-19 19:04 |只看该作者
回复 2# icymirror

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

   

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
4 [报告]
发表于 2014-06-20 06:12 |只看该作者
回复 3# liuaiping0205
如果允许通过不同的文件名来做,你可以在run里面通过时间来生成文件名,比如:XXX(log文件名)-Day-Hour-Minute-Sec(sec是可选项).log

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
5 [报告]
发表于 2014-06-20 08:39 |只看该作者
个数, 明显是个不靠谱的东西. 为什么不用 pid 呢?

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

论坛徽章:
0
6 [报告]
发表于 2014-06-20 09:34 |只看该作者
嗯,通过PID或者时间都是很好的方法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP