按名称终止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身份运行时很有用)。
最好将进程名片段解释为与正在运行的命令匹配的正则表达式。 但是,这不应该是默认行为。