命令
查询进程:
bash
ps -ef | grep python
bash
# 将两个 grep 命令串联,实现进一步过滤上一步的结果。
ps -ef | grep python | grep xxx.py
终止进程:
bash
kill -9 719781
讲解
ps -ef 和 grep python 是Linux系统中经常使用的两个命令,它们通常被组合在一起使用,用于查找当前系统中运行的与Python相关的进程。
下面分别解释这两个命令:
ps -ef:ps是 "process status" 的缩写,是用于显示当前系统进程状态的工具。-e选项代表显示所有进程。-f选项代表全格式显示,即显示完整的信息,包括UID(用户ID)、PID(进程ID)、PPID(父进程ID)、C(CPU占用率)、STIME(开始时间)、TTY(终端设备)、TIME(运行时间)、CMD(命令)。
grep python:grep是 "global regular expression print" 的缩写,是一种强大的文本搜索工具,用于搜索包含指定模式的字符串。python是这里要搜索的模式,即搜索包含 "python" 字符串的行。
将这两个命令通过管道符 | 连接起来,即 ps -ef | grep python,其作用是:
ps -ef列出系统中所有的进程。- 然后通过管道符
|将ps -ef的输出作为grep python的输入。 grep python从输入中筛选出包含 "python" 字符串的行。
最终,这个命令组合会显示所有命令行中包含 "python" 的进程信息,这样用户就可以找到正在运行的Python脚本或相关程序,以及它们的进程ID等详细信息。
例如,如果你运行一个Python脚本,然后执行 ps -ef | grep python,你可能会看到类似以下的内容:
root 719781 719775 0 20:28 pts/9 00:00:02 python my_script.py
这里,root 是运行该进程的用户,719781 是进程ID,719775 是该进程的父进程ID,0是CPU使用百分比,20:28 是进程开始的时间,pts/9 是进程所在的终端,00:00:02 是进程已经运行的时间,python my_script.py 是进程启动的具体命令。
这条输出表示 root 用户在晚上20点28分通过伪终端 pts/9 启动了一个名为 python 的进程,该进程的ID是 719781,其父进程ID是 719775,该进程目前没有使用CPU(或者CPU使用率为0),并且已经运行了0小时0分钟2秒,它的目的是运行位于当前目录下的 my_script.py 脚本。
kill -9 719781 是一个在Unix-like系统中使用的命令,用于强制终止进程。
下面解释这个命令的各个部分:
kill:kill是一个用于发送信号到进程的命令。默认情况下,如果没有指定信号,kill命令会发送SIGTERM信号,这是一个请求进程终止的信号,允许进程进行清理和正常退出。
-9:-9是kill命令的一个选项,它代表发送SIGKILL信号。SIGKILL是一个无法被捕获、阻塞或忽略的信号,它会强制终止指定的进程。数字9是SIGKILL信号的编号。
719781:719781是你想要终止的进程的进程ID(PID)。每个进程都有一个唯一的PID,用于在系统中标识该进程。
所以,kill -9 719781的作用是向PID为719781的进程发送SIGKILL信号,这将导致该进程立即终止,不进行任何清理操作。这通常用于那些无法正常终止的进程,或者当你需要立即停止某个进程时。
需要注意的是,使用kill -9应该谨慎,因为被终止的进程不会有机会保存任何未完成的工作,也不会有机会释放它所占用的资源。如果可能,首先尝试使用kill命令(不指定信号,默认为SIGTERM)来请求进程正常终止,如果进程没有响应,再考虑使用kill -9。