关于进程控制
Windows的TASKLIST
TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]
描述
该工具显示在本地或远程机器上当前运行的进程列表。
参数列表:
/S |
---|
/U |
/P |
/M |
/SVC 显示每个进程中主持的服务。 |
/V 显示详述任务信息。 |
/FI |
/FO format 指定输出格式。 有效值: “TABLE”、“LIST”、“CSV”。 |
/NH 指定列标题不应该在输出中显示。 只对 “TABLE” 和 “CSV” 格式有效。 |
/? 显示帮助消息。 |
示例
若要列出进程 ID 大于 1000 的所有任务,并将它们以 csv 格式显示,请键入:
|
|
若要列出当前正在运行的系统进程,请键入:
|
|
若要列出当前正在运行的所有进程的详细信息,请键入:
|
|
若要使用用户帐户 Hiropln 的凭据列出远程计算机 srvmain 上的进程,请键入:
|
|
Windows的TASKKILL
描述
结束一个或多个任务或进程。 可以通过进程 ID 或图像名称结束进程。 可以使用 tasklist 命令来确定要结束的进程的进程 ID (PID)。
参数列表
/s |
---|
/u |
/p |
/FI * ) 指定所有任务或映像名称。 本文的“筛选器名称、运算符和值”部分列出了有效的筛选器。 |
/PID |
/im * ) 指定所有映像名称。 |
/F 指定强制结束进程。 对于远程进程,将忽略此参数;所有远程进程都会被强制结束。 |
/t 结束指定的进程及其启动的任何子进程。 |
示例
若要结束进程 ID 为 1230、1241 和 1253 的进程,请键入:
|
|
如果进程 Notepad.exe 是由系统启动的,要强行结束它,请键入:
|
|
若要结束进程 ID 为 2134 的进程及其它启动的任何子进程,但前提是这些进程是由管理员帐户启动的,请键入:
|
|
若要结束进程 ID 大于或等于 1000 的所有进程,无论其映像名称如何,请键入:
|
|
Linux的PS
描述
ps是显示瞬间进程的状态,并不动态连续,如果想对进程进行实时监控应该用top命令。
ps命令的格式为:ps [选项]
由于ps命令支持的系统类型相当的多,所以它的参数多的离谱,而且有没有加上 - 差很多,所以只需要记住常用的几个命令即可。
参数列表
-A 显示所有的进程,跟-e的效果相同 |
---|
-a 显示现行终端机下的所有进程,包括其他用户的进程 |
-u 显示当前用户的进程状态 |
-x 通常与 a 这个参数一起使用,可列出较完整信息 |
-l 较长、较详细的将该PID的信息列出 |
-j 工作的格式(jobs format) |
-f 做一个更为完整的输出 |
用例
各个表头的含义为:
F:代表这个进程的flag,如果是4,则代表使用者为 super user S:代表这个进程的状态stat UID:代表执行者的userId PID:进程的id PPID:父进程的id C:占用CPU资源的百分比 PRI:指进程的执行优先级(Priority的简写),其值越小越早被执行 NI:代表进程的nice值,其表示进程可被执行的优先级的修正数值 ADDR:代表进程的地址,它指出该进程在内存的哪个部分,如果是个正在运行的程序,一般都是"-" SZ:占用的内存大小 WCHAN:判断当前进程是否正在运行,若为"-",则代表正在运行 TTY:该进程是在那个终端机上面运行,若与终端机无关,则显示?,另外,tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。 TIME:占用CPU的时间 CMD:所下达的指令名称
|
|
各个表头的含义为:
USER:表示该进程属于哪个用户 PID:进程id %CPU:该进程占用CPU资源的百分比 %MEM:该进程占用内存的百分比 VSZ:该进程使用掉的虚拟内存量 (Kbytes) RSS:该进程占用的固定的内存量 (Kbytes) TTY:该进程是在那个终端机上面运行,若与终端机无关,则显示?,另外,tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。 STAT:代表该进程目前的状态,主要的状态有: R:该进程正在运行 S:该进程正在休眠,但可被某些信号(signal)唤醒 D:无法中断的休眠状态(通常为IO进程) T:该进程已经停止 Z:僵死状态,该进程应该已经终止,但是其父进程却无法正常的终止它,造成zombie(疆尸)程序的状态 W:等待状态,等待内存的分配 <:高优先级的进程 N:低优先级的进程 START:该进程被触发启动的时间 COMMAND:该进程的实际指令
Linux的KILL
描述
kill 的作用是向一个进程发送指定信号,而不仅仅是结束一个进程
kill [参数] <进程ID> […]
参数列表
-l <信息编号> 若不加<信息编号>选项,则 -l 参数会列出全部的信息名称。 |
---|
-s <信息名称或编号> 指定要送出的信息。 |
-a 当处理当前进程时,不限制命令名和进程号的对应关系 |
-p 只打印相关进程的进程号,而不发送任何信号 |
-u 指定用户,kill某个用户的所有进程 |
1 (HUP):重新加载进程。 |
9 (KILL):杀死一个进程。 |
15 (TERM):正常停止一个进程。 |
-SIGINT 是信号的名称或对应的数字,可以是SIGINT、SIGTERM等信号的名称或信号编号。默认情况下,kill 命令发送的是SIGTERM信号(15) |
不常用参数具体如下,请自行搜索具体用法 |
|
|
发送SIGTERM信号会请求进程正常终止,并给进程执行清理操作的机会。通常情况下,进程会捕获SIGTERM信号并进行清理工作,如保存进度、关闭文件,然后自行终止。这是一种优雅的终止方式,相比于直接使用SIGKILL(kill -9)来强制终止进程,它更加友好,允许进程有机会完成清理和资源释放。