按名称终止Unix进程

killproc的Python项目详细描述


简介

killproc是按名称终止或终止unix进程的命令行实用程序。标准Unix kill命令根据进程id而不是进程名标识进程。例如,要终止django-admin.py脚本的实例,可以使用以下序列:

$  ps -ef | grep django-admin.py | grep -v grep
501 20060     1   0   0:00.11 ttys001    0:00.38 python django-admin.py runserver 0.0.0.0:8002
501 20063 20060   0   0:00.35 ttys001    0:01.07 python django-admin.py runserver 0.0.0.0:8002
$ kill -TERM 20060 20063
$ ps -ef | grep django-admin.py | grep -v grep

运行额外的ps命令并从其输出中挑选进程id可以得到 乏味。

killproc自动执行此序列:您提供进程名的一部分,它执行ps,过滤 通过将进程名片段与ps输出的cmd列匹配得到的结果。为每个人 匹配,系统将提示用户是否要终止进程(可以打开提示 通过命令行选项关闭)。使用killproc完成上述任务可能如下所示:

killproc django-admin.py
python django-admin.py runserver 0.0.0.0:8002
Kill process 20106? [y] y
Sending signal SIGTERM to process 20106
python django-admin.py runserver 0.0.0.0:8002
Kill process 20109? [y] y
Sending signal SIGTERM to process 20109
Sent signal SIGTERM to 2 processes

支持的平台

killproc已经在mac osx和ubuntu linux上进行了测试。预计它可以在大多数linux和bsd变体上工作。

安装

killproc是用python编写并使用setuptools打包的。已经登记了 在killproc下的PyPi上。因此,如果机器上安装了python和setuptools, 您可以通过简易安装运行安装:

easy_install killproc

或PIP:

pip killproc

两个命令都会将python包放在python环境中,并在python的二进制文件中创建killproc脚本 目录(从而使其在您的路径中可用)。

killproc.py文件可以作为独立的命令行实用程序运行。因此,作为另一种安装方法,您可以获取 从源发行版中删除killproc.py文件,将其放在可执行路径上的目录中,将其重命名为killproc,然后添加execute 权限。

用法

killproc的命令行格式为:

killproc [options] process_name

可用选项有:

-h, --help            show help message and exit
-k, --with-extreme-prejudice
                       If specified, use SIGKILL (default is SIGTERM)
-s SIGNAL_NO, --signal=SIGNAL_NO
                       Use the specified signal. Defaults to 15 (SIGTERM)
-n, --non-interactive
                       If specified, don't ask user for confirmation

注意事项、限制和未来的增强功能

匹配进程不按用户筛选。如果其他用户的进程与进程名片段匹配,则killproc 也会提示用户输入这些用户,并且终止这些进程将失败。作为未来的增强, killproc默认情况下应该只返回当前用户的匹配进程,并返回一个命令行选项 匹配所有用户(在以根用户或sudo身份运行时很有用)。

最好将进程名片段解释为与正在运行的命令匹配的正则表达式。 但是,这不应该是默认行为。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javajaxb在嵌套节点中生成xmlns:xsi声明   java重定向到youtube以上传jsp上可用的视频   java提高了JVM和ANT的性能   java如何将返回的JSON数据放在HTML表单中   java如何发送XWWWFORMURLENCODE在重新授权   java为什么jvm XX:+EliminateAllocations失败   堆移除和重建方法?(爪哇)   Stanford NPL in Spark(Scala)应用程序运行到Java堆空间(Java.lang.OutOfMemoryError)   调试java中打开/关闭println的任何方式(详细模式)   java IntelliJ在鼠标悬停时显示JavaDocs工具提示   Olingo Odata Java中的自动扩展选项   json将postgres文本arry转换为java列表?   oop需要帮助推断Java代码   复选框的java添加操作侦听器AbstractTableModel   java如何从公共静态void main(String[]args)传递值   java从数据库中获取大值   java Processing 2.0电影从jar运行时无法打开电影文件   java如何在不使用应用程序的情况下刷新活动?   尝试将JSON解析为ListView时的Android:JSON parse:null对象引用