Linux 进程信息查看及控制

进程就是一段程序的执行过程,特点 独立性动态性并发性,有生命周期及运行状态

线程由进程产生,一个进程由一个或多个线程组成

进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间及一些进程级的资源

一、查看

ps

静态查看系统进程信息

常见组合 :

ps当前终端进程信息

-ef当前服务器所有进程信息

aux 查看系统所有进程信息,包括cpu,mem..

auxf详细信息,及进程之间父子关系

选项作用
a显示当前终端下的所有进程,包括其他用户的进程
u显示进程拥有者、状态、资源占用的详细信息
x显示没有控制终端的进程
o自定义打印内容
eg:# ps axo command,pid,nice
-e显示所有进程
-f显示进程之间父子关系
-l详细显示进程信息

pidof

查看指定进程PID

语法: # pidof sshd

top

查看服务器进程的资源占用,动态显示

选项全称作用
-ppid指定进程PID查看,可多个
-uuser指定用户
-dduration信息更新时间间隔

快捷键

  • h|? 帮助
  • M 按内存使用降序排序
  • P 按CPU使用率降序排列
  • 1 当服务器具有多个CPU时,切换所有CPU负载
  • s 改变两次刷新之间的时间,默认是5秒
  • k 给进程发信息,先输入进程号,然后输入信号 ,默认信号值 15
  • q退出程序
  • N 根据PID排序
  • R 反转排序
  • f 自定义显示字段
  • r 调整进程优先级

其他

查看物理CPU的个数
# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
查看逻辑CPU的个数
# cat /proc/cpuinfo |grep "processor"|wc -l
查看CPU是几核
# cat /proc/cpuinfo |grep "cores"|uniq

vmstat

待更新

iostat

待更新

二、控制

kill

杀死进程

语法:# kill [信号] 进程PID

常用信号:15(正常信号,默认信号),9(强制终止),1(重启)

信号编号信号名作用
1SIGHUP重启,可用来重新加载配置文件
2SIGINT键盘中断
9SIGKILL强制终止
15SIGTERM正常结束,默认信号
18SIGCONT继续
19SIGSTOP停止
20SIGTSTP暂停

killall/pkill

根据进程名称杀死进程

语法:# killall 进程名称

调整优先级

renice

调整正在运行进程的优先级,范围 -20到19,数字越低,优先级越高

语法:renice -值 pid

nice

程序启动时指定优先级

语法:# nice -n -优先级 进程

jobs

查看当前终端后台进程

向后台进程发信号时需要使用后台编号 %ID

fg

后台进程放到前台,若不指定,默认后台进程的最后一个

语法:# fg %编号

bg

后台暂停进程改为在后台运行,若不指定,默认后台进程的最后一个

语法:# bg %编号

三、其他

管道 |

进程之间通信的一种方式/机制,常用于父子进程之间通信

匿名管道:用于同一终端之间父子进程之间通信

命名管道:用于不同终端之间的通信, Shell脚本并发控制,使用 mkfifo 创建

匿名管道作用:将上一个命令所执行的结果作为下一个命令的标准输入

xargs

用户给命令传递参数的一个过滤器,也用于将管道数据转换为命令行参数

选项全称作用
-nmax-args多行输出
-ddelim定义分割符,默认是以空格和换行符
-Ireplace-str指定一个替换字符串 {},每一个参数命令都会被执行一次

Example

1.分割字符
# echo "testXtestXtest" | xargs -d X
test test test
2.复制所有图片文件到 /tmp/imgs 目录下
# ls *.jpg|xargs -n1 -I {} cp {} /tmp/imgs

后台进程

开启方式:

在要执行的命令后加 & 或者 Ctrl+z将正在执行的任务转为后台执行

Last modification:August 1st, 2018 at 03:48 pm