简介:Linux中ps查看进程及ps参数的作用
进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。有些晦涩难以理解,其实就是某个运行的程序,进程作为操作系统的基本运作单位,每一个进程都有唯一的进程号ID,而我们管理进程就是通过这个ID。
进程分为父进程和子进程,子进程是通过父进程衍生出来的,一些特殊原因导致一些子进程没有父进程,我们把这种子进程称为孤儿进程
在Linux中我们通常会使用ps或者pstree来管理经常,今天我们就来讲讲这两个命令的具体用法。
ps
ps命令主要查看进程的运行状态。具体格式及参数如下所示:
ps [options] [--help]
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
ps命令参数可以组合使用,最常用的便是【-au】与【-x】组合使用:
# 查看所有进程并显示详细信息
ps -aux
#显示加宽,方便查看所有内容
ps -auxw
返回结果如下所示
下面我们介绍一下返回值中比较重要的参数:
pstree
虽然ps已经可以查看所有进程信息及父进程ID值,但是非常的不直观,但是pstree却可以做到很直观。
pstree查看所有进程并以树形结构显示:
pstree -up
当然我们还可以指定查询某个进程的树结构信息:
pstree -up -p 进程ID
除了通过指定进程ID的形式查看某个进程的树形结构信息外,我们还可以通过管道形式查看:
# 通过管道查看进程信息
pstree -up |grep '进程名称'
#例如查看php-fpm进程信息
pstree -up |grep 'php-fpm'
显示内容如下:
pidof
如果我们想要通过进程名称直接查看进程ID,可以使用pidof
pidof 进程名
kill 和 killall
上面我们已经介绍查看进程信息的相关命令,那么关闭呢?关闭或者杀死进程可以使用kill及killall,其格式如下:
kill [options] 进程ID
options如下所示:
参数 | 简写 | 描述 |
SIGHUP | 1 | 启动被终止的程序,可让该PID 重新读取自己的配置文件,类似重新启动 |
SIGINT | 2 | 相当于用键盘输入[ctrl] -c 来中断一个程序的进行 |
SIGKILL | 9 | 代表强制中断一个程序的进行 |
SIGTERM | 15 | 以正常的结束程序来终止该程序。由于是正常的终止, 所以后续的动作会将他完成。该信号也是默认值,不加任何信号时,即表示使用该值 |
SIGSTOP | 19 | 相当于用键盘输入[ctrl] -z 来暂停一个程序的进行 |
kill通过进程ID来管理进程,而killall通过进程名称来管理进程。下面我们演示一下具体操作:
# kill通过进程ID管理进程
kill -15 4260
# 或者如下
kill SIGTERM 4260
# 注意,这样会杀死所有php-fpm进程
killall -9 php-fpm
# 或者如下格式
killall SIGTERM php-fpm
有遗漏或者不对的可以在我的公众号留言哦