linux进程指令

进程:

linux中的每一个可执行文件都相当于一个小的程序,这些程序在平时只占用disk空间,但是当他们运行的时候,便会产生一个进程,会占用系统的资源,每一个进程都有一个PID(process Identifier)进程标识符,PPID(parent process ID)状态:运行running还是等待runnable 还是休眠sleeping
计算机资源是四个核心:(disk 硬盘空间 disk:IO 流) mem:内存 cpu:时间轮询器 network 网络
进程运行需要抢占计算机资源,而kernel内核就是负责给进程调度资源的指挥者,PID就是内核识别进程的一种标识符
进程的分类:短时间进程,类似于passwd,ls,cp 之类的
守护进程,类似httpd.apache,ftpd之类的服务器,会一直存在不会消亡,叫做守护进程
在这里插入图片描述
pstree 查看进程树
centos5/6中第一个进程是init
centos7 中变为了systemd
小结:子进程fork()父进程时,会将父进程的安全性身份,过去和当前的文件描述符,端口和资源特权,环境变量以及程序代码克隆过来,随后子进程执行自己的代码,父进程会进入sleep状态,直到子进程exit释放资源,进入僵尸状态(留下PID),等着父进程收尸,这才真正死亡
ls cp 等的父进程都是bash

查看进程
静态的查看

pstree 查看进程树
ps aux | less 查看这个时候静态的进程快照
在这里插入图片描述
user 用户
PID 进程标识符
%CPU 占用CPU的时间百分比
%MEM 占用内存的百分比
VSZ 虚拟内存 包括整个系统常用的一些库以及环境
RSS 真实内存 驻留内存 是进程真正占用的内存大小
TTY 该进程在哪一个终端上运行 ?不依赖任何终端(驻留类)
stat 进程所处的状态 (man ps /state 查看状态描述)
start 进程的启动时间
time 进程占用cpu的总时间
command 进程文件进程名
ps aux --sort -time 按照占用cpu的时间降序排序
ps aux --sort time 按照占用cpu的时间升序排序
ps auxf 按照层级结构查看
ps -ef 精简查看进程
在这里插入图片描述
ps aux | grep sshd 查看进程pid
ps axo pid,command 自定义字段显示进程

动态的查看

top 有些类似windows下的任务管理器,实时刷新线程
在这里插入图片描述
users 几个用户
load average 0.00 0.11 0.16 总得cpu的负载均衡 1分钟 5分钟 15分钟的平均负载
0.16 / 4 0.04 是每个cpu的负载,如果超过1就是过载
0.0 us 是用户态 0.3 sy 内核态占用cpu 0.0 ni 修改过优先级的进程
在这里插入图片描述
PR 是优先级 priority
Ni nice 值
lscpu 查看linux的Cpu核数
top -d 1 延迟一秒来显示一次 (delay)
M(大写) 内存使用排序
P(大写) 按照cpu的使用排序
N(大写) 按照PID进行排序
R(大写) 反转 降序变成升序
f 自定义显示字段

< > 左右尖括号想向左右移动显示
1 显示所有cpu的负载情况
z 彩色显示
W(大写) 保存对字段的修改 保存到 家目录下的/.toprc 文件中
top -d 1 -p 10126 查看指定的某个进程
top -d 1 -p 10126,1 查看指定的多个进程
top -d 1 -u apache 查看指定用户的进程
top -d 1 -b -n 2 > top.txt 查看几次动态的进程,重定向到文件中

信号控制进程

kill 10126 杀死进程结束进程,通过pid
在这里插入图片描述
1 重新加载进程 配置发生改变重新加载配置 PID不会变,还是原来进程
注意: resert 重启是先stop 在start 而重新加载是 reload reconfigure 重新加载配置
9 强制杀死终止进程,不会释放进程,在这个进程不响应的时候终结他
15 杀死终止进程,默认的,允许他自己释放资源在死亡
18 继续进程 恢复
19 暂停进程
kill -l 查看所有的信号
测试:
yum -y install vsftpd 安装ftpd 服务器
systemctl start vsftpd 启动ftp 服务器
ps aux | grep vsftpd 查看 ftp的PID
top -d 1 -p 52826 动态查看他的进程
w 查看所有登录到这台shell的用户
kill 1 52826 当他的配置发生改变时重启服务器 (kill 后只能跟Pid 或者 JOB ID)
killall 1 vsftpd (killall 后可以跟进程名字)
pgrep -u root named 查看 用户root 运行的named 进程PID
pkill -HUB named 重新加载这个进程,(可以跟进程名字或者PID)
pkill -t pts/o 杀掉这个终端上运行的所有进程
pkill -9 -t pts/0 包括终端以及终端上运行的所有进程全部杀掉
注意(终端有伪终端pts 与本地终端,shell 远程连接的终端都是伪终端)

进程的优先级:

相对优先级nice:由于不是每个线程都同样的重要,于是可以告知进程调度程序为不同的进程提供不同的调度策略,常规进程所用的调度策略为SCHED_OTHER(SCHED_NORMAL),还有别的优先级
在SCHED_OTHER中还有一个相对优先级,就是nice值,可以有40多种值
在这里插入图片描述
注意:从左到右为优先级逐渐递减,负数为最高的优先级
在PR优先级队列中,会将nice值映射进来表示,-20为0,19位39
PR优先级中最大为RT
ps axo pid,command,nice,cls --sort -nice 以降序显示nice值
在这里插入图片描述
cls 为显示调度策略 ts为SCHED_OTHER FF 为高优先级
在创建进程时,会继承父进程的nice值,默认为0
nice -n -5 sleep 6000 & 为给他设定值 为-5 &为以后台程序运行
renice -n -20 5793 给5793线程设值nice值

作业控制

是一个命令行功能,允许一个shell实例来运行和管理多个进程
foreground:前台进程是在终端中运行,该终端为该进程的控制终端
background:后台进程没有控制终端,他不需要与终端交互
controlling terminal:控制终端 & 来声明
jobs 查看所有的后台进程
在这里插入图片描述
1 为后台进程作业号
bg 1 将这个作业进程调度到后台
fg 1 将这个作业进程从后台调度到前台
kill %2 通过作业号将这个后台进程杀死
fg 默认选取的为最近的那个后台作业
注意:一个shell只能运行一个进程,如果我们想要操作多进程,可以考虑将这个进程挂起,使用作业来完成(ctrl + Z) ,操作完别的线程之后使用fg 将作业从后台取到前台。
& 符号放在命令的后边才是后台符

使用技巧:

一行只能操作一个命令,如果想要操作多个命令,可以在这些命令之间加一个 ;来完成
sleep 3; ls ; date 多行命令操作
管理远程连接会话:
如果我们连接到远程终端上,操作了命令之后,突然断网,再连接上去,发现这些命令没有了,这个时候需要一个远程连接会话
第一次操作远程终端的时候:
ssh 192.168.43.180 连接到远程终端
yum -y install screen 安装会话
screen -S text 给会话起一个名字 或者(screen 直接进去会话)
开始命令
异常退出后,再次连接
screen -list 查看本机的会话
screen -r 6985 加载会话上次未执行的命令有了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值