天天看点

Linux进程管理命令ps、pgrep、pkill、top、lsof、kill等详细说明

作者:运维木子李

ps命令:

  • ps命令用于显示当前系统中的进程状态。
  • 示例应用:
  • 显示所有进程的详细信息:
ps aux           
  • 显示指定用户的进程:
ps -u username           
  • 显示指定进程ID的进程:
ps -p PID           
  • 自定义输出格式,只显示进程ID和命令:
ps -o pid,cmd           

pgrep命令:

  • pgrep命令用于根据进程名或其他条件查找进程的PID。
  • 示例应用:
  • 查找名为sshd的进程的PID:
pgrep sshd           
  • 查找名为nginx的进程的PID:
pgrep nginx           
  • 查找名为httpd并属于指定用户的进程的PID:
pgrep -u username httpd           

pkill命令:

  • pkill命令用于根据进程名或其他条件终止进程。
  • 示例应用:
  • 终止名为sshd的进程:
pkill sshd           
  • 终止名为nginx的进程:
pkill nginx           
  • 终止名为httpd并属于指定用户的进程:
pkill -u username httpd           

uptime命令:

  • uptime命令用于显示系统的负载平均值和运行时间。
  • 示例应用:
  • 显示系统的负载平均值和运行时间:
uptime           

top命令:

  • top是一个实时进程监视器,显示系统的整体状态和正在运行的进程列表。
  • 示例应用:
  • 运行top命令后,可以查看进程的CPU使用率、内存占用、进程ID等信息。
  • 使用方向键进行导航,使用空格键切换排序方式,使用q键退出top命令。

htop命令:

  • htop是一个交互式的进程监视器,类似于top命令,但提供了更多的功能和更友好的用户界面。
  • 示例应用:
  • 运行htop命令后,可以显示进程的CPU使用率、内存占用、进程树结构等信息。
  • 使用方向键和回车键进行导航和选择操作,使用F键进行排序,使用k键终止进程。

vmstat命令:

  • vmstat命令用于显示系统的虚拟内存、进程、CPU和IO统计信息。
  • 示例应用:
  • 显示系统的虚拟内存、进程、CPU和IO统计信息:
vmstat           
  • 每隔一段时间显示一次统计信息:
vmstat 2           

lsof命令:

  • lsof命令用于列出打开的文件和相关进程。
  • 示例应用:
  • 列出所有打开的文件:
lsof           
  • 列出某个进程打开的文件:
lsof -p PID           
  • 列出某个用户打开的文件:
lsof -u username           

lsof -i命令用于列出在网络上活动的进程和打开的网络连接。

以下是lsof -i命令的一些常见用法和示例:

列出所有活动的网络连接:

lsof -i #列出所有在网络上活动的进程和打开的网络连接           

列出指定端口上的活动连接:

lsof -i :port #列出指定端口上的活动连接。
lsof -i :80  #将列出在端口80上活动的连接           

列出指定协议的活动连接:

lsof -i protocol  #列出指定协议的活动连接。

lsof -i tcp #将列出使用TCP协议的活动连接           

列出指定主机的活动连接:

lsof -i @[hostname|ip]  #列出与指定主机或IP地址之间的活动连接。
lsof -i @example.com   #将列出与example.com之间的活动连接           

列出指定进程使用的网络连接:

lsof -i -p PID  #列出指定PID的进程所使用的网络连接

lsof -i -p 1234  #将列出PID为1234的进程的网络连接           

需要注意的是,lsof -i命令需要以root用户或具有足够权限的用户身份运行,以便显示所有进程和连接的详细信息。

这些命令提供了对Linux系统中进程和系统性能的监控和管理。您可以根据具体需求使用适当的命令来获取所需的信息或执行操作。

kill命令:

kill命令用于向进程发送信号,可以用来终止或操作进程。以下是kill命令的一些常见用法和示例:

终止进程:

kill PID  #向指定PID的进程发送默认的终止信号(SIGTERM)
kill -9 PID #向指定PID的进程发送强制终止信号(SIGKILL)           

发送其他信号:

kill -SIGNAL PID #向指定PID的进程发送指定的信号
kill -HUP PID  #向进程发送挂起信号(SIGHUP)           

使用进程名称终止进程:

pkill process_name  #终止所有名称为process_name的进程。
pkill -u username process_name  #终止属于指定用户的名称为process_name的进程           

查看可用的信号:

kill -l  #列出所有可用的信号           

需要注意的是,向进程发送信号并不一定会立即终止进程,进程可以选择如何处理接收到的信号。一般而言,进程会优先处理某些信号(如SIGTERM),如果进程不响应,则可以使用强制终止信号(SIGKILL)来强制终止进程。

在使用kill命令时,请确保您有足够的权限来操作目标进程。