Python 里怎么监控一行命令超时就强行杀死?

2016-01-11 19:47:21 +08:00
 karlxu
我脚本里用 os.system 方式调用 phantomjs ,但是有时 phantomjs 可能会挂死,无法退出,所以想对吊起 phantomjs 时进行超时监控,超过一定时间,进程还在就用 os.system(kill -9),但不知道怎么写了。。。
2427 次点击
所在节点    问与答
8 条回复
Zzzzzzzzz
2016-01-11 19:55:31 +08:00
用 timeout 命令就行了.
karlxu
2016-01-11 20:36:07 +08:00
@Zzzzzzzzz 可以具体点吗?我搜了下没找到相关的例子。谢谢了
Zzzzzzzzz
2016-01-11 20:44:47 +08:00
@karlxu os.system("timeout -s 9 3 sleep 1000")
karlxu
2016-01-11 20:50:18 +08:00
@Zzzzzzzzz 这是 dos 下的吧? linux 好像没这个命令
Zzzzzzzzz
2016-01-11 20:54:35 +08:00
@karlxu 就是 linux 下 coreutils 包里的, 一般发行版里都是默认安装的基本命令.
yangtukun1412
2016-01-11 21:07:58 +08:00
可以使用 signal 中的 alarm 信号,示例见官方文档

https://docs.python.org/2/library/signal.html#example
karlxu
2016-03-04 16:47:46 +08:00
@Zzzzzzzzz 请教下 windows 系统下有什么好使的命名可以超时杀掉吗?我试了下 timeout 在 windows 下等于 sleep 的功能
Zzzzzzzzz
2016-03-09 21:39:03 +08:00
@karlxu 这个倒真不知道, 很久没在 windows 下面搞过开发了, 要不装个 cygwin 试下里面的 timeout?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/249965

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX