`
shrek
  • 浏览: 73933 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
qja
社区版块
存档分类
最新评论

python 交互式kill 命令

阅读更多
linux下的firefox老崩溃,每次自动退出后,后台总会有好几个firefox进程在运行,原来的做法是
ps ax | grep firefox
然后用 kill -9 [pid] 把查出来的进程一个个杀掉
无聊之中,想到用 python做了个交互式的kill

#!/usr/bin/python

from subprocess import *
import os
import sys

def show_ps(ps_name):
    if ps_name :
        p1 = Popen(["ps","ax"], stdout=PIPE)
        p2 = Popen(["grep", ps_name], stdin=p1.stdout, stdout=PIPE)
        output = p2.communicate()[0]
    else :
        p1 = Popen(["ps","ax"], stdout=PIPE)
        output = p1.communicate()[0]


    ps_num={}
    for index,line in enumerate(output.split("\n")):
        if (line.strip() == ""): continue
        pid=line.split()[0]
        print "[%d] %s" % (index, line )
        ps_num[index]=pid
    return ps_num


def main(ps_name):
    while True:
        ps_num=show_ps(ps_name)
        reply = raw_input("enter a number to kill process, enter q quit.")
        if reply=="":
            break
        else :
            os.system("kill -9 "+ps_num[int(reply)])


if __name__ == '__main__':
    ps_name=None
    if len(sys.argv) >= 2 :
        ps_name=sys.argv[1]
    main(ps_name)

分享到:
评论
2 楼 鹤惊昆仑 2010-01-18  
ipython更好
1 楼 lijunjie 2009-09-02  
使用pkill firefox

相关推荐

    对python中执行DOS命令的3种方法总结

    `Popen` 提供了更多的控制选项,适合需要处理子进程输出或进行交互式操作的场合;而 `subprocess.run()` 则在易用性和灵活性之间找到了一个平衡点,是现代Python编程中的首选。在实际使用中,应根据项目需求选择最...

    Python教程-11-终端命令的格式说明.ev4.rar

    - `python` 或 `python3`:启动Python解释器,交互式编程。 - `python script.py`:运行Python脚本。 - `pip`:Python的包管理器,用于安装、升级和卸载库。 在学习过程中,结合实际操作,理解和记忆这些命令,...

    Python6.5就业班阶段2-python高级视频.zip

    课程可能会涵盖HTML、CSS和JavaScript的基础知识,这些都是构建交互式Web应用的基石。你将学习如何构建结构化的网页,应用样式,以及通过JavaScript实现动态功能。 5. **MySQL数据库**:MySQL是广泛使用的开源关系...

    Python核心编程第二版

     1.5.1 命令行上的交互式解释器   1.5.2 从命令行启动脚本   1.5.3 集成开发环境   1.5.4 其他的集成开发环境和执行环境   1.6 Python文档   1.7 比较Python(Python与其他语言的比较)   1.8 ...

    Django技术整理

    - 退出Python交互式环境可以使用`Ctrl + Z`,然后按`Enter`。 - 安装Django可以通过命令行进入Python环境并执行`python setup.py install`来完成安装。 - 将Django安装路径添加到系统的环境变量`Path`中,如:`C:...

    Linux与Python 编程R 复习大纲 (软件20级).doc

    * 交互式:使用 Python 解释器进行交互式编程 * 文件方式:将 Python 代码写入文件中 * 集成开发环境:使用 IDE 进行 Python 开发 * 导入模块:使用 import 语句导入模块 2.2 Python 输入与输出、赋值语句、数据...

    补充篇章1

    Jupyter Notebook 是一个基于 Web 的交互式计算环境,它可以用来编写和运行 Python 代码。Jupyter Notebook 的优点是可以实时显示计算结果,并且可以插入图像、公式等多媒体内容。 Windows 下的文本编辑与编码需要...

    Python核心编程(第二版).pdf (压缩包分2部分,第二部分)

     1.5.1 命令行上的交互式解释器  . 1.5.2 从命令行启动脚本   1.5.3 集成开发环境   1.5.4 其他的集成开发环境和执行环境   1.6 python文档   1.7 比较python(python与其他语言的比较)   1.8...

    Python核心编程(第二版).pdf (压缩包分2部分,第一部分)

     1.5.1 命令行上的交互式解释器  . 1.5.2 从命令行启动脚本   1.5.3 集成开发环境   1.5.4 其他的集成开发环境和执行环境   1.6 python文档   1.7 比较python(python与其他语言的比较)   1.8...

    fablinker:一种用于交互式操作多个服务器的工具。交互式多服务器自动化运维工具,简单易用

    将远程文件名加上数字地点:切换到某个单机,或者切换到某个机器组addgrp:动态机器分组fab shellcmd:在所有远程主机上执行shellcmd命令,例如ls,php test.php,kill,ps等fab vim test.txt:依次打开所有远程主机...

    python启动应用程序和终止应用程序的方法

    4. **subprocess模块**: 功能最强大,支持非阻塞式执行、交互式操作等多种高级功能。 ##### 示例代码 下面是一个使用`subprocess`模块监控命令执行过程并处理超时情况的例子: ```python import time import ...

    Linux常用命令大全

    9. `rm`:删除文件,`rm -f`强制删除,`rm -i`交互式删除。 二、文本处理 1. `cat`:查看或连接文件内容,如`cat file.txt`显示file.txt的内容。 2. `more`/`less`:分页查看文件内容,`less`支持上下滚动和搜索...

    pexpect-3.3.tar.gz

    在Python编程领域,pexpect是一个强大的自动化工具,它使得与交互式应用程序进行通信变得简单。这个模块的核心功能是能够启动一个子进程,并控制它的输入和输出,等待预期的输出,这正是“pexpect”名称的由来。本文...

    ubuntu常见命令

    - **功能**: 杀死指定PID的进程、所有指定名称的进程、强制杀死指定PID的进程、强制杀死所有指定名称的进程以及交互式杀死进程。 - **示例**: 运行`#kill -9 1234`强制杀死PID为1234的进程。 #### 19. 查看系统资源...

    Python flask框架端口失效解决方案

    在Python开发中,Flask是一个轻量级的Web服务程序框架,它允许开发者轻松地创建交互式的Web应用。然而,在实际使用过程中,可能会遇到端口失效或者端口冲突的问题,导致应用无法按照预期在指定的端口上运行。本文将...

    Python多进程与服务器并发原理及用法实例分析

    - 用户交互式请求创建新进程。 - 批处理作业初始化。 在Python的`multiprocessing`模块中,我们可以使用`Process`类来创建进程,如下: ```python from multiprocessing import Process def worker_function(): ...

    Debian常用命令

    - **功能**:一个交互式的软件包选择工具,用于管理软件包。 - **示例**:`dselect`, 启动交互式软件包选择工具。 5. **apt-get autoclean** - **功能**:清理旧的、已下载的软件包文件。 - **示例**:`sudo ...

    Django 创建新App及其常用命令的实现方法

    通过进入Django的交互式shell: ```bash python manage.py shell ``` 我们可以导入模型并进行各种数据库操作,如增加、查看、修改和删除数据。 ```python from app1.models import App1 # 创建数据 App1.objects...

Global site tag (gtag.js) - Google Analytics