佛山网站建设公司如何组建,东道品牌创意集团,德州市住房和城乡建设部网站,网站不用了 怎么关闭吗目录
一、概念
二、查看进程
1、ps命令查看进程
1#xff09;ps显示某个时间点的程序运行情况
2#xff09;查看指定的进程信息
2、top命令查看进程
1#xff09;信息统计区#xff1a;
2#xff09;进程信息区
3#xff09;交互式命令
三、信号控制进程
四、…目录
一、概念
二、查看进程
1、ps命令查看进程
1ps显示某个时间点的程序运行情况
2查看指定的进程信息
2、top命令查看进程
1信息统计区
2进程信息区
3交互式命令
三、信号控制进程
四、作业控制 一、概念
程序二进制文件文件存储在磁盘中例如/usr/bin/目录下
进程当运行可执行文件后会被装载到内存中接着CPU会执行程序中的每一条指令这时这个运行中的程序就被称为进程(进程是已启动的可执行程序的运行实例。
线程是操作系统能够进行运算调度的最小单位。 它被包含在进程之中是进程中的实际运作单位。 一条线程指的是进程中一个单一顺序的控制流线程是进程当中的一条执行流程一个进程中可以并发多个线程每条线程并行执行不同的任务。 进程和程序不是一一对应的关系相同的程序运行在不同的数据集上就是不同的进程进程具有并发性和交往性而程序是封闭的一个进程可以拥有多个线程而一个线程同时只能被一个进程所拥有线程不能单独执行但每一个线程都有程序的入口、执行序列以及程序出口它必须组成进程才能被执行。同一个进程内多个线程之间可以共享代码块、数据段、打开的文件等资源但每个流程都有独立的寄存器和栈这样可以确保线程的控制流是相对独立的进程是资源分配的单位线程是CPU调度的单位进程拥有一个完整的资源平台而线程只独享必不可少的资源。 进程分类 二、查看进程
在一个进程的活动期间至少具备三种基本状态即运行状态、就绪状态、阻塞状态。
比较完整的进程状态变迁图 注图片来自进程和线程之间有什么根本性的区别 - 知乎
1、ps命令查看进程
1ps显示某个时间点的程序运行情况 -a 显示所有用户的进程 -u 显示用户名和启动时间 -x 显示没有控制终端的进程 -e 显示所有进程包括没有控制终端的进程 -l 长格式显示 -w宽行显示可以使用多个 w 进行加宽显示 -f做一个更完整的输出 # 查看当前用户的进程 [rootlocalhost ~]# ps -l F——程序标识说明程序的权限。 4表示此程序的权限为root1表示此子程序仅进行复制而没有实际执行 S——程序状态STAT RRunning该程序正在运作中 SSleep该程序目前正在睡眠状态idle但可以被唤醒 D不可被唤醒的睡眠状态通常可能是在等待I/O的情况 T停止状态stop可能是在工作控制后台暂停或traced状态 ZZombie僵尸状态程序已经终止但却无法被移除至记忆体外。 位于前台的进程组 UID——代表此程序被该UID所拥有 PID——程序的PID号码 PPID——此程序的父进程PID号码。 C——CPU使用率单位为百分比 PRI(Priority)NI(Nice) ——代表此程序被CPU所执行的优先顺序数值越小代表该程序越快被CPU执行 ADDR/SZ/WCHAN都与内存有关。 ADDR——kernel funcition指出该程序在内存的哪个部分如果是 running的程序一般会显示-。 SZ——代表此程序用掉多少内存 WCHAN——表示目前程序是否运作中若为-表示正在运行。 TTY——登入者的终端机位置若为远程终端登入则使用动态终端界面pts/n。 TIME——使用掉的CPU时间即此程序实际花费CPU运作的时间。 CMD——触发此进程的指令是什么。 [rootlocalhost ~]# ps -u [rootlocalhost ~]# ps aux |less USER: 运行进程的用户 PID 进程ID %CPU: CPU占用率 %MEM: 内存占用率 VSZ 占用虚拟内存 RSS: 占用实际内存 驻留内存 TTY 进程运行的终端 STAT 进程状态 man ps (/STATE) R 运行 S 可中断睡眠 Sleep D 不可中断睡眠 T 停止的进程 Z 僵尸进程 X 死掉的进程 s 进程的领导者父进程 优先级较高的进程 N 优先级的进程 表示是前台的进程组 l 以线程的方式运行 START: 进程的启动时间 TIME 进程占用CPU的总时间 COMMAND 进程文件进程名 #自定义显示字段 [rootlocalhost ~]# ps axo user,pid,ppid,%mem,command # 查看进程树 [rootlocalhost ~]# pstree 2查看指定的进程信息
[rootlocalhost ~]# ps aux |grep sshd
[rootlocalhost ~]# cat /run/sshd.pid
1210# 查看远程连接sshd的所有进程
[rootlocalhost ~]# pgrep -l sshd# 如果把sshd服务全都关掉(killall sshd)之后需在虚拟机上重启sshd服务才能进行远程连接
[rootlocalhost ~]# systemctl start sshd 2、top命令查看进程
格式top [-d 数字] | [-bnp]
选项 -d后面可以接秒数就是整个进程界面更新的秒数默认是5秒 -b以批次的方式执行top通常会搭配数据流重定向来将批处理的结果输出为文件。 -n与-b搭配进行几次top的输出结果 -i 不显示闲置或者僵死的进程信息 -c显示进程的整个命令路径而不是只显示命令名称 -s使top命令在安全模式下运行此时top的交互式指令被取消避免潜在危险 -p指定某些个PID来进行查看检测
[rootlocalhost ~]# top -d 1
[rootlocalhost ~]# top -d 1 -p 3598 #查看指定进程的动态信息
[rootlocalhost ~]# top -d 1 -p 10126,1
[rootlocalhost ~]# top -d 1 -u root #查看指定用户的进程#将2次top信息写入到文件
[rootlocalhost ~]# top -d 1 -b -n 2 top.txt
top的输出可分为统计信息区前五行和进程信息区
1信息统计区
第一行为任务队列信息
top - 14:12:56 up 2:15, 5 users, load average: 0.01, 0.08, 0.11
14:12:56 表示当前系统时间 up 2:15 表示系统已启动4小时32分钟
5 users 表示当前登录系统的用户数
load average: 0.01, 0.08, 0.11 表示系统1分钟、5分钟、15分钟前到现在的平均负载如果 是1表示满负载
第二行
Tasks: 315 total, 2 running, 313 sleeping, 0 stopped, 0 zombie
315 total 进程的总数 2 running 正在运行的进程数 313 sleeping 处于休眠的进程数
0 stopped 停止的进程数 0 zombie 僵死的进程数
第三行
%Cpu(s): 0.5 us, 0.5 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
0.5 us 表示进程占用CPU的百分比 0.5 sy 系统进程占用CPU的百分比
0.0 ni 用户进程空间内改变过优先级的进程占用CPU的百分比
99.0 id 空闲CPU占用的百分比
0.0 wa 代表I/Owait表示等待输入、输出的进程占用CPU的百分比
0.0 hi 表示cpu服务于硬件中断所耗费的时间总额
0.0 si 表示cpu服务于软件中断所耗费的时间总额 0.0 st表示虚拟机被hypervisor偷去的cpu时间。另外如果是多内核设备可按下数字键“1” 来切换成不同cpu的负载率
第四五行
MiB Mem : 1750.8 total, 100.4 free, 1241.1 used, 576.3 buff/cache
MiB Swap: 2048.0 total, 2026.2 free, 21.8 used. 509.7 avail Mem
total系统的内存大小free目前空余内存大小used已经使用的内存大小 2进程信息区
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND
3108 root 20 0 226012 4232 3348 R 1.9 0.2 0:00.07 top VIRT进程使用的虚拟内存总量单位为KB
RES进程使用的、未被换出的物理内存大小单位KB
SHR共享内存大小单位KB
S进程状态D表示不可中断的睡眠状态R表示运行状态S表示睡眠状态T表示跟踪/停 止Z表示僵死进程
%CPU上次更新到现在的CPU时间占用百分比
%MEM进程占用的物理内存百分比
TIME进程总计使用的CPU时间单位为1/100秒
COMMAND正在运行进程的命令名或者命令路径 3交互式命令重要
在top执行过程中可以使用的按键命令
h或? 显示帮助信息给出交互式命令的一些说明
k 终止一个进程
i 忽略闲置进程和僵死进程开关式命令
s 改变top输出信息两次刷新的时间单位为秒
o或O 改变top输出信息中显示项的顺序按小写的a-z键可以将相应的列向右移动而按大写的 A-Z键可以将相应的列向左移动。最后按enter确定
m 切换显示内存信息
t 切换显示进程和CPU状态信息
r 重新设置一个进程的优先级输入正值将使优先级降低默认值10
l 切换平均负载和启动时间信息
q 退出top显示
c 切换显示完整命令行和命令名称信息
M 根据驻留内存大小进行排序输出
N 以PID来排序
P 根据CPU使用百分比大小进行排序输出
T 根据时间/累计时间进行排序输出
S 切换到累计模式
W 将当前top设置写入~/.toprc文件中 三、信号控制进程
# 列出所有支持的信号
[rootlocalhost ~]# kill -l常用的信号 编号 信号名 1 SIGHUP 重新加载配置 2 SIGINT 键盘中断^C 3 SIGQUIT 键盘退出 9 SIGKILL 强制终止 15 SIGTERM 终止正常结束缺省信号 18 SIGCONT 继续 19 SIGSTOP 停止 20 SIGTSTP 暂停^Z放在后台 给进程发送信号
[rootlocalhost ~]# ps -ef |grep python
root 1070 1 0 09:07 ? 00:00:00 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid
root 2996 1 0 09:08 ? 00:00:02 /usr/bin/python3 /usr/libexec/rhsm-service
root 3931 3884 0 10:39 pts/4 00:00:00 python test.py
root 3933 3466 0 10:40 pts/1 00:00:00 grep --colorauto python
[rootlocalhost ~]#
[rootlocalhost ~]# kill -20 3931 # 暂停3931这个进程
[rootlocalhost ~]# kill -18 3931 # 恢复3931这个进程
[rootlocalhost ~]# kill -19 3931 # 停止3931这个进程# 关掉所有有关python的进程
[rootlocalhost ~]# killall python四、作业控制 一个命令行功能允许一个shell实例来运行和管理多个命令。如果没有作业控制父进程 fork()一个子进程后将sleeping直到子进程退出。使用作业控制可以选择性暂停恢复以及异步运行命令让 shell 可以在子进程运行期间返回接受其他命令。
foreground: 前台进程是在终端中运行的命令该终端为进程的控制终端。前台进程接收键盘产生的输 入和信号并允许从终端读取或写入到终端。
background: 后台进程没有控制终端它不需要与终端交互。
# 运行程序时让其在后台执行返回一个作业id号
# 表示在后台工作
[rootlocalhost ~]# sleep 3000
[1] 7652# 快捷键CTRLZ可以将前台的任务放在后台中暂停
[rootlocalhost ~]# sleep 4000^Z
[2] Stopped sleep 4000# 查看有关sleep的进程信息
[rootlocalhost ~]# ps aux | grep sleep
root 7652 0.0 0.0 220952 1024 pts/0 S 18:25 0:00 sleep 3000
root 7655 0.0 0.0 220952 1020 pts/0 T 18:25 0:00 sleep 4000
root 7657 0.0 0.1 221664 2244 pts/0 S 18:26 0:00 grep --colorauto sleep# 查看当前终端放在后台的进程jobs
# 表示最近被放到后台的工作-表示最近第二个被放到后台中的工作超过第三个就不会有/-符号存在了
[rootlocalhost ~]# jobs
[1]- Running sleep 3000
[2] Stopped sleep 4000# 让作业2在后台继续运行
[rootlocalhost ~]# bg %2
[2] sleep 4000 # 将作业1调回到前台
[rootlocalhost ~]# fg %1
sleep 3000# kill 1终止作业工作号为1的进程
[rootlocalhost ~]# kill %1
[rootlocalhost ~]# jobs
[2] Running sleep 4000