Linux进程管理



查看进程

查看进程树

# 先要安装psmisc
yum install psmisc -y
# 查看进程树
pstree

Linux进程管理_运维

查看所有进程

常用查看命令

# 以内存占用排序
ps -eo pid,ppid,cmd,%mem,%cpu --sort=%mem | head
# 以CPU占用排序
ps -eo pid,ppid,cmd,%mem,%cpu --sort=%cpu | head

# 动态查看
watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=%mem |head'

Linux进程管理_后台运行_02

BSD风格打印

ps aux

Linux进程管理_运维_03

以Linux风格打印所有进程

ps -A
ps -e

Linux进程管理_运维_04

完整格式

ps -ef

查看进程目录

/proc目录下的数字,就是进程号

[root@c8 ~]# cd /proc/
[root@c8 proc]# ls
1 170 256 3225183 37 459 55 861 driver kpageflags slabinfo
10 171 26 3225191 38 46 572 873 execdomains loadavg softirqs
11 172 27 3225192 39 460 6 9 fb locks stat
1112 173 28 3225199 4 461 603 925 filesystems mdstat swaps
1115 175 2836625 3225200 40 462 703 929 fs meminfo sys
1118 176 2836760 3225212 41 463 705 acpi interrupts misc sysrq-trigger
1120 177 29 3225215 42 464 708 buddyinfo iomem modules sysvipc
1131 18 290 3225216 43 465 728 bus ioports mounts thread-self
1132 2 3 3225217 431 466 738 cgroups irq mtrr timer_list
12 20 30 3225220 432 47 740 cmdline kallsyms net tty
13 21 32 3225223 433 48 741 consoles kcore pagetypeinfo uptime
14 22 3224858 3225229 434 49 747 cpuinfo keys partitions version
1459049 23 3224926 3225230 435 50 757 crypto key-users sched_debug vmallocinfo
15 24 3224958 3225231 44 51 76 devices kmsg schedstat vmstat
16 253380 3225110 3225254 45 52 781 diskstats kpagecgroup scsi zoneinfo
17 253410 3225180 3225264 457 53 837 dma kpagecount self
[root@c8 proc]#

查看动态进程

top

或者htop

# 安装epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

# 安装htop
yum install htop -y
# 查看
htop

Linux进程管理_杀死进程_05

操作进程

Linux进程管理_后台运行_06

kill根据pid杀死进程

kill pid

killall根据进程名杀死一组进程

killall 进程名
# 实例: 结束所有bash
killlall -9 bash

pkill根据名字杀死进程

pkill 名字
# 示例
pgrep -l gaim
2979 gaim
## 结束gaim
pkill gaim


# 示例2:
[localhost root yum.repos.d] #w
18:53:30 up 5:47, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.0.254 18:27 2.00s 0.53s 0.01s w
# 结束pts/0会话
pkill -9 -t pts/0

后台进程

在命令后加上& 就会进入后台进程,但不是所有命令都支持后台

#!/usr/bin/env bash
# 快速检查服务器是否可用
date;
for i in {1..100}; do
(ping -c 2 rhcsa$i &>>/dev/null && echo "rhcsa$i success" || echo -e "\033[31mrhcsa$i faild\033[0m") &
done
wait;
date

进程管理

  • ps
  • 进程管理的作用
  • 判断服务器健康状态
  • 查看系统中所有进程
  • 杀死进程
  • 显示所有用户进程
  • ps -a
  • 查看系统中所有进程: ps -aux
USER:该进程是由哪个用户产生的
PID:进程的ID号
%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源
%MEN:该进程占用物理内存的百分比,占用越高,进程越耗费资源
VSZ:该进程占用虚拟内存的大小,单位KB
RSS:该进程占用实际物理内存的大小,单位KB
TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-256代表虚拟终端
STAT:进程状态。常见的状态有:
R:运行
S:睡眠
T:停止状态
s:包含子进程
+:位于后台
START:该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名

- pid

- 进程号

- ppid

- 父进程号

  • 查看系统中所有进程,使用Linux标准命令格式: ps -le
  • 查看系统状态:top
  • 第一行
  • 分别是时间
  • 登录用户数
  • 第二行
  • 1 running
  • 1运行
  • 77 sleeping
  • 77睡眠
  • 0 stopped
  • 0 暂停
  • 0 zombie
  • 僵尸进程
  • CPU
  • Mem
  • Swap
  • 查看可用的进程信息:kill -l
  • 每两秒钟监控一次:vmstat 2
  • 重启进程:
  • kill -1 进程ID
  • 强制杀死进程:
  • kill -9 进程ID

进程相关

Linux查看进程和线程

Ps -eLf|more
1、使用 ps -ef |grep 进程名 找到该进程的pid
2、执行top命令
3、输入r后提示输入pid,回车
4、输入要求输入优先级权值(-19到19)值越小表示优先级越高,输入-19,回车。设置完成。

Linux进程相关

Linux的进程保存在/proc/
查看/proc 目录
发现目录下很多以数字开头的目录
这个数字目录就是 进程号
里面就是进程的内容
## cd /proc/进程号,每个进程号都会生成一个目录,fb目录下是当前进程的活动

Linux进程管理_linux_07

调整进程优先级

##renice 对正在进行的进程调整优先级
renice -n 15 19314
#nice -n 10调整进程优先级
nice -n 10

Linux进程管理_运维_08

命令后面加&后台运行

#  查看运行中的后台运行
jobs
#恢复&后台运行程序为前台运行
fg
# 暂停程序
catl+z
#恢复后台运行
bg
#是查看暂停程序
job
#fg或bg恢复程序

Linux进程管理_linux_09

Linux进程管理_运维_10

Linux进程管理_运维_11

守护进程

## nohup和&可以不需要终端运行程序,screen和hohup类似

使用nohup与& 符号配合运行一个命令
nohup 命令使进程忽略hangup(挂起)信号
守护进程(daemon)和一般进程有什么差别呢?

#使用screnn命令
screen进入sreen环境
ctrl+a d退出(detached)screen环境
screen -ls 查看screen的会话
screen -r sessionid 恢复会话

Linux进程管理_linux_12