(1)进程概念
什么是进程:已启动的可执行程序
程序:二进制文件
进程:程序运行的过程,动态,有生命周期和运行状态
(2)ps:静态查看进程
常用命令和选项:
ps aux //查看进程
ps aux --sort -%cpu //查看进程并以cpu使用率排序
ps -ef //查看进程
ps axo user,pid,%cpu --sort -%cpu //自定义显示字段
pgrep -l sshd //查看进程的pid
[root@master ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.5 190848 2876 ? Ss May05 0:20 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
说明:
USER:运行进程的用户
%CPU //CPU占用率
%MEM //内存占用率
VSZ //占用虚拟内存
RSS //占用实际内存
TTY //进程运行的终端
STAT //进程运行状态
R //运行
S //可中端睡眠
D //不可中断睡眠
T //停止的进程
Z //僵尸进程
X //死掉的进程
Ss //s进程的领导者,父进程
S< //优先级较高的进程
SN //优先级较低的进程
R+ //前台的进程
SL //以线程方式运行
START //进程的启动时间
TIME //进程占用CPU的总时间
COMMAND //进程文件,进程名
(3)top:动态查看进程
常用命令和选项:
top
top -d 1 //每隔一分钟刷新一次
top -d 1 -p 950 //只查看进程pid为950的信息
top -d 1 -p 950,1 //同时查看两个进程信息
top -d 1 -u root //查看进程属主是root的进程信息
top -d 1 -b -n 2 > top.txt //将两次top信息写入到文件中
top中常用快捷键
M //按内存排序
P //按cpu使用排序
1 //显示所有CPU负载
> //向后
< //向前
z //彩色
W //保存top环境变量
f //自定义显示字段
(4)进程信号:kill pkill killall
#kill -l //列出所支持的信号
编号 信号名 作用
1 SIGHUP 重新加载配置
2 SIGINT 键盘中断
3 SIGQUIT 键盘退出
9 SIGKILL 强制终止
15 SIGTERM 终止(正常结束),缺省信号
18 SIGCONT 继续
19 SIGSTOP 停止
20 SIGTSTP 暂停
kill pkill killall总结:作用都是给进程发送信号
kill 进程pid/job id
killall 进程名
pkill 进程名
kill语法:kill [编号或信号名] 进程pid
kill -1 1000 //重新加载配置
kill -9 1000 //强制终止进程,进程的所使用的相关资源不会正常释放,不建议使用,适合杀死进程僵死
kill -15 1000 //等同于kill 1000,缺省信号,正常结束进程
killall语法:killall 进程名
killall vim //终止与vim相关的进程
pkill -9 进程名 //强制终止sleep进程
pkill -u jack //踢出远程登录到本机的jack用户
pkill -t pts/2 //终止pts/2上所有的进程
pkill -9 -t pts/2 //终止pts/2上所有进程,并结束该pts/2
(5)进程优先级:nice值
进程调度及多任务:每个cpu在一个时间点上只能处理一个进程,通过时间片技术,linux实际能够运行的进程可以超出实际可用的cpu及核心数量。linux内核进程调度程序将多个进程在cpu核心上快速切换,从而给用户多个进程在同时运行的印象
相对优先级nice:由于不是每个进程都与其他进程同样重要,可告知进程调度程序为不同的进程使用不同的调度策略。常规系统上运行的大多数进程所使用的调度策略为SCHED_OTHER
SCHED_OTHER调度策略运行的进程的相对优先级称为进程的nice值,可以有40种不同级别的nice值
nice值越高:表示优先级越低,例如+19,该进程容易将cpu使用量让给其它进程
nice值越低:表示优先级越高,例如-20,该进程更不倾向于让出cpu
查看进程的nice值:
1)使用top查看nice值:
NI:实际nice级别
PR:将nice级别显示为映射到更大优先级队列,-20映射为0,+19映射到39
2)使用ps查看nice级别:
ps axo pid,command,nice --sort=-nice
ps axo pid,command,nice,cls --sort=-nice //TS表示该进程使用的调度策略为SCHED_OTHER
设置nice值
1)启用具有不同nice级别的进程:启用进程时,通常会继承父进程的nice级别,默认为0
nice -n -5 sleep 5000 &
nice -n -20 systemctl start httpd
2)使用shell更改nice级别
renice -20 进程pid
(6)作业控制jobs
作业控制:允许一个shell实例来运行和管理多个命令,使用作业控制,可以选择性暂停恢复以及运行其它命令,让shell可以在子进程运行期间返回接受其它命令
fg:前台进程是在终端中运行命令,该终端为进程的控制终端,前台进程接收键盘产生的输入和信号,并允许从终端读取或写入到终端
bg:后台进程没有控制终端,它不需要终端的交互
例:
sleep 3000 & //运行程序时,让其在后台执行
sleep 4000 //ctrl + z , 将前台的出现挂起(暂停)到后台
ps aux | grep sleep
jobs //查看后台作业
bg 2 //让作业2在后台运行
fg 1 //将作业1调回到前台
fg //将最后一次的挂起的作业调到前台
kill %1 //杀死作业1,注意kill 1是终止pid为1的进程
nohup和&的区别
sh 22.sh &
将任务放到后台 ,即使关闭xshell退出当前session依然继续运行,但标准输出和标准错误信息会丢失
nohup sh 22.sh
将任务放到后台,关闭标准输入,前台不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。
nohup sh 22.sh &
将任务放到后台,但是依然可以使用标准输入,前台能够接收任何输入,重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。
screen :执行命令断网可以恢复
yum install screen -y
screen
sleep 3000 //断开xshell
screen -list //查看前台任务
screen -r 编号 //重新加载任务到前台