Linux进程管理

本文主要介绍Linux进程相关的命令,ps、kill、top等。

1. ps命令

ps常规用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# ps aux					查看所有进程
# ps -ef 查看所有进程
# ps -f -u apache 查看某个用户的进程
# ps -f -C httpd 通过进程名显示进程
# ps -f -p 3150,7298,6544 通过进程id显示进程
# ps aux --sort=-pcpu,+pmem 以cpu使用量排序,如果cpu使用量相同,则以内存使用量排序
# ps -f --forest -C httpd 显示ASCII进程树
# ps -o pid,uname,comm -C httpd 显示父进程的子进程
# ps -o pid,uname,comm --ppid 3438
# ps -e -o pid,comm,etime 显示进程已运行的时间
# watch -n 1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15'

还有一个pstree命令
# pstree
# pstree -a
# pstree -p apache

2. top相关命令

  • top命令

    1
    2
    3
    # top
    # top -b -n 1
    # top -b -n 1 -p 1
  • htop命令

    1
    2
    3
    4
    5
    6
    # yum install htop -y				没有htop命令就安装
    # htop
    # htop -d 2 2秒刷新一次
    # htop -C 没有颜色
    # htop -u apache u=user
    # htop -p xxx,xxx p=pid
  • dstat 命令

    1
    2
    3
    4
    5
    # dstat						直接运行
    # dstat -n n是net
    # dstat -d d是disk
    # dstat -m m是memory
    # dstat -l l是load average 显示系统负载情况
  • glances命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # yum install epel-release -y
    # yum install glances -y 没有glances命令就安装
    # glances
    # glances -t 2 刷新频率2秒,默认是1秒
    # yum install python-jinja2 -y
    # glances -o csv -f glances.csv 输出为csv格式
    # glances -o HTML -f /var/www/html/ 输出为html格式
    # glances -s -B 192.168.1.153 -p 4000 -P123 在服务器端启动
    # glances -c 192.168.1.153 -p 4000 -P123 再客户端连接

3. kill命令

发送指定的信号到相应进程。

1
2
# kill -l					查看有那些信号
# kill -9 xxx 给xxx进程发生9号信号

查找进程PID的命令

1
2
3
4
5
# ps -ef | grep httpd
# pstree -p apache
# pidof httpd
# pgrep httpd
# lsof /usr/sbin/httpd

杀死进程的命令

1
2
3
4
# kill -9 pid
# killall httpd
# pkill httpd
# skill httpd

lsof命令

1
2
3
4
5
6
7
8
9
10
lsof 						打开文件列表
lsof /usr/sbin/httpd 查找某个文件相关的进程
lsof -c mysql 查找某个程序进程所打开的文件信息
lsof -c mysql -c apache 多个
lsof -p 1 通过某个进程号显示该进行打开的文件
lsof -p 1,2,3 多个
lsof -i 列出所有的网络连接
lsof -i tcp 列出所有的tcp连接
lsof -i udp 列出所有的udp连接
lsof -i :3306 列出谁在使用某个端口

4 . 前台进程和后台进程

(1)command &让进程在后台运行
(2) jobs –l 查看后台运行的进程
(3)fg %n 让后台运行的进程n到前台来
(4)bg %n 让进程n到后台去

1
2
3
4
5
6
# glances -s -B 127.0.0.1 &
# glances -s -B 127.0.0.1 暂停程序运行CTRL+Z
# jobs -l 查看暂停的程序
# bg %1 切换程序至后台
# fg %1 切换程序至前台
# kill %1 终止后台程序

---------------- The End ----------------