进程管理

来源:互联网 发布:淘宝如何开通国际转运 编辑:程序博客网 时间:2024/06/05 12:48

关于进程 process
进程的生命周期
这里写图片描述
父进程复制 自己的地址空间(fork)创建一个新的(子)进程结构。每个新进程分配一个唯一的进程 ID (PID),满足跟踪安全性之需。PID 和 父进程 ID (PPID)是子进程环境的元素,任何进程都可以创建子进程,所有进程都是第一个系统进程的后代。
进程状态
这里写图片描述
在多任务处理操作系统中,每个CPU(或核心)在一个时间点上只能处理一个进程。在进程运行时,它对CPU 时间和资源分配的要求会不断变化,从而为进程分配一个状态,它随着环境要求而改变。
进程间的转换
这里写图片描述

查看进程 process
[root@localhost ~]# ps aux –sort %cpu |less 对cpu的使用情况进行升序排列
[root@localhost ~]# ps aux –sort -%cpu |less 对cpu的使用情况进行降序排列

[root@localhost ~]# ps auxf |grep httpd
[root@localhost ~]# ps axo user,pid,ppid,%mem,command |grep httpd
[root@localhost ~]# pgrep sshd
[root@localhost ~]# cat /run/sshd.pid
[root@localhost ~]# pidof sshd

[root@localhost ~]# pstree

[root@localhost ~]# top -d 1 //一秒刷新一次

[root@localhost ~]# top
top - 14:15:04 up 47 min, 2 users, load average: 0.25, 0.18, 0.12
Tasks: 235 total, 1 running, 234 sleeping, 0 stopped, 0 zombie
Cpu(s): 8.9%us, 1.0%sy, 0.0%ni, 90.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 7944064k total, 746164k used, 7197900k free, 35724k buffers
Swap: 1048568k total, 0k used, 1048568k free, 261492k cached

load average: 0.86, 0.56, 0.78 系统最近 1分钟,5分钟,15分钟平均负载 ,分别除以cpu个数,大于一则负载过重。

h|?帮助
M 按内存的使用排序
P 按CPU使用排序
N 以PID的大小排序
R 对排序进行反转
f 自定义显示字段
1 显示所有CPU的负载
< 向前 > 向后 z 彩色
W 保存top环境设置

使用信号控制进程
kill,killall,pkill,top

[root@localhost ~]# kill -l //列出所有支持的信号
编号 信号名
1) SIGHUP 重新加载配置
2) SIGINT 键盘中断^C
3) SIGQUIT 键盘退出
9) SIGKILL 强制终止
15) SIGTERM 终止(正常结束),缺省信号
18) SIGCONT 继续
19) SIGSTOP 停止
20)SIGTSTP 暂停^Z
[root@localhost ~]# kill -1 9160 //发送重启信号
[root@localhost ~]# kill 9160 //发送停止信号
[root@localhost ~]# kill -9 4363 //强制杀掉进程

[root@localhost ~]# killall vim //给所有vim进程发送信号

[root@localhost ~] # w
15:20:59 up 5:45, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 123.120.22.32 15:00 3:55 0.00s 0.00s -bash
root pts/1 123.120.22.32 15:00 3.00s 0.01s 0.00s w
root pts/2 123.120.22.32 15:20 3.00s 0.00s 0.00s -bash
[root@localhost ~]# pkill -t pts/2 //终止pts/2上所有进程
[root@localhost ~]# pkill -9 -t pts/2 //终止pts/2上所有进程 并结束该pts/2

[root@localhost ~]# top
k
pid

进程优先级 nice
nice 值越高: 表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
nice 值越低: 表示优先级越高,例如-20,该进程更不倾向于让出CPU。

  1. 使用top查看nice级别
    NI: 实际nice级别
    PR: 将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39

  2. 使用ps查看nice级别
    [root@localhost ~]# ps axo pid,command,nice –sort=-nice
    [root@localhost ~]# ps axo pid,command,nice,cls –sort=-nice
    TS 表示该进程使用的调度策略为SCHED_OTHER

[root@localhost ~]# nice -n -5 sleep 6000 &
[root@localhost ~]# renice -20 10089

[root@localhost ~]# top
r
pid
rice

作业控制 jobs
foreground: 前台进程是在终端中运行的命令,该终端为进程的控制终端。前台进程接收键盘产生的输入和信号,并允许从终端读取或写入到终端。
background: 后台进程没有控制终端,它不需要终端的交互。

[root@localhost ~]# sleep 3000 & //运行程序(时),让其在后台执行
[root@localhost ~]# sleep 4000 //^Z,将前台的程序挂起(暂停)到后台

[root@localhost ~]# ps aux |grep sleep
root 8895 0.0 0.0 100900 556 pts/0 S 12:13 0:00 sleep 3000
root 8896 0.0 0.0 100900 556 pts/0 T 12:13 0:00 sleep 4000

查看被挂起的进程( jobs )
[root@localhost ~]# jobs //查看后台作业
[1]- Running sleep 3000 &
[2]+ Stopped sleep 4000

恢复到前台继续运行( fg )
恢复到后台继续运行( bg)
[root@localhost ~]# bg %2 //让作业2在后台运行
[root@localhost ~]# fg %1 //将作业1调回到前台

[root@localhost ~]# kill %1 //kill 1,终止PID为1的进程

[root@localhost ~]# (while :; do date; sleep 2; done) & //进程在后台运行,但输出依然在当前终端

[root@localhost ~]# (while :; do date; sleep 2; done) &>/dev/null &

proc 文件系统
[root@localhost ~]# grep ‘processor’ /proc/cpuinfo //逻辑cpu的个数
processor : 0
processor : 1
[root@localhost ~]# grep ‘physical id’ /proc/cpuinfo //物理cpu的个数
physical id : 0
physical id : 0

[root@localhost ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3

/proc/meminfo
[root@localhost ~]# less /proc/meminfo
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 7950 704 6540 100 705 6908
Swap: 2047 0 2047

/proc/cmdline //内核启动参数
[root@localhost ~]# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-327.el7.x86_64 root=UUID=9b17ab4e-cd93-4f84-bd1e-7241a0baac9b ro rhgb quiet LANG=zh_CN.UTF-8

原创粉丝点击