简介:Linux系统Centos7中程序的相关概念。进程管理工具ps&top的用法。kill控制进程。job控制作业的相关方式。
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
1.已分配内存的地址空间;
2.安全属性,包括所有权凭据和特权;
3.程序代码的一个或多个执行线程;
4.进程状态。
程序:可以利用的运行起来的文件(二进制文件),静态/usr/bin/passwd,/usr/sbin/useradd
进程:运行起来的程序 也是程序运行的过程,动态,有生命周期及运行状态。
Centos5/6系统进程:init
Centos7系统进程:systemd
目标:了解进程相关信息 PID PPID 当前进程状态 内存的分配情况 CPU和已经花费的实际时间 用户UID,他决定进程的特权 进程名称
那么aux都代表什么呢?
ps a 显示现行终端机下的所有程序
ps u 以用户为主的格式来显示程序状况
ps x 不以终端机来区分
root 53739 0.0 0.0 112676 984 pts/2 S+ 19:16 0:00 grep --color=auto network
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
运行进程的用户 进程ID CPU占用率 内存占用率 占用虚拟内存 占用实际内存 进程运行的终端 进程状态 进程的启动时间 进程占用CPU的时间 进程文件,进程名
Process ID Virtual Size|Resident Set Size| STATUS
进程状态的常见参数
咱云工程师就靠PID去杀死进程 PID就像给他的标签 我们根据标签去找到相应进程 进程ID(PID)是用来唯一标识系统中的每个进程的一个数字。当一个程序启动并且变成进程时,操作系统会为它分配一个唯一的PID。PID是自动和动态分配的,通常是按顺序来分配的,但是这并不意味着是连续不断的(比如:1 243 674 5346),因为可能会因为已有的PID或者特殊算法来调整分配。当一个进程终止或被杀死(使用kill命令等手段),它的PID会释放回操作系统,并且可以被之后启动的任何进程重用。因此,一个程序被杀死后再次启动,它将会被赋予一个新的、不同的PID。系统一般会尝试使用尚未使用的最小可用PID,但这不是保证的,因为PID的分配还受到PID回收策略和可能的PID限制的影响。总之,不应该依赖于一个程序在每次启动时都被分配相同的PID。
ps aux --sort user/pid/%cpu/%mem/vsz/rss/tty/stat/start/time/command
ps aux --sort user/pid/%cpu/%mem/vsz/rss/tty/stat/start/time/command | head/tail -X (X的数值代表从头/尾显示X行)
ps -ef
PPID为X时 则X就是PID所代表的程序召唤出来的
ps axo(operation) 写你想要的列名(user/pid/ppid/%cpu/%mem/vsz/rss/tty/stat/start/time/command)多个时使用逗号隔开
ps axo user,pid,ppid,command
ps axo user,pid,ppid,command | head/tail -X(X的数值代表从头/尾显示X行)
实时的 默认三秒更新一次(可以调节) 以动态形式查询我们的内容
top - 01:57:01 up 1 day 6:38 5 users load average: 0.09, 0.11, 0.07
程序名-系统时间 运行时间 登录用户数 CPU负载 1分钟 5分钟 15分钟(代表这三个时间点的CPU使用占比)
Tasks: 188 total 1 running 187 sleeping 0 stopped 0 zombie
总进程数 运行数 睡眠数 停止数 僵死数
%Cpu(s): 0.7 us 2.0 sy 0.0 ni 97.2 id 0.0 wa 0.0 hi 0.2 si 0.0 st
CPU占比 用户 系统 优先级 空闲 等待 硬件 软件 虚拟机
user system nice wait soft
额外关照的
存储 KiB Mem : 999720 total, 162580 free, 416016 used, 421124 buff/cache
内存 物理内存 总共大小 空闲 已使用 缓存硬盘内容大小
存储 KiB Swap: 2097148 total, 1743132 free, 354016 used. 374368 avail Mem
储存 交换分区 总共大小 空闲 已使用 下次可用的空间
h|?帮助
M 按内存的使用排序
P 按CPU使用排序
N 以PID的大小排序
<向前
>向后
z彩色,Z设置彩色,使用数字调整
动态查看进程top,像windows的任务管理器
[root@qianfeng ~]# top
[root@qianfeng ~]# top-d 1 //每1秒刷新。
//回车,立刻刷新。按z彩色显示,按F,通过光标设置列的顺序
[root@qianfeng ~]# top-d 1-p 10126 查看指定进程的动态信息
[root@qianfeng ~]# top-d1 -p 10126,1 查看10126和1号进程(用逗号隔开)
信号就是下达的命令
给进程发送信号(kill-l列出所有支持的信号)
kill -l
编号 信号名
1) SIGHUP 重新加载配置
2) SIGINT 键盘中断Ctrl+C
3) SIGQUTT键盘退出Ctrl+\,类似SIGINT
9) SIGKILL 强制终止,无条件 适用于进程卡死 但是尽量少用 多用15
15) SIGTERM 终止(正常结束),缺省信号
18) SIGCONT 继续
19) SIGSTOP 暂停
20)SIGTSTP 键盘暂停Ctrl+Z
实例-使用18 19 可以继续/暂停程序
01.创建文件file1 file2
02.vim file1 file2 不退出
03.kill -15 file1的进程
04.kill -9 file2的进程
简介:Linux 进程调度及多任务 每个CPU在一个时间点上只能处理一个进程,通过时间片技术,来同时运行多个程序
PR优先级:系统内置的优先级 范围-99到39 PR值=Nice值+20
ps axo pid,command,nice --sort=-nice
使用何种优先级启动:
在默认情况下 通常会继承父进程的nice级别,默认为0
nice -n -5 sleep 6000& (-n:number -5:数字 范围为-20到19 &代表后台运行)
修改nice值
renice -X 进程ID (-X的数值代表优先级大小 范围为-20到19)
简介:作业控制通常是解决一种特性(后台运行)是一个命令行功能 关键词介绍:foreground(fg 前台运行) background (bg 后台运行)
运行一个程序 当前终端无法输入命令 大部分命令行的输入已经无效
ctrl+c 中止进程
jobs
fg 1 (将作业1调至前台 1可以是jobs最前面id的任何值)
kill %X (X的值为jobs的最前面的id)
简介:Proc(process)进程目录 虚拟文件系统 采集服务器自身 内核信息 硬件信息
[root@cxk ~]# cat /proc/XXXX
本章涉及Linux进程管理的基础概念及实际操作技能。了解进程是操作系统中已启动程序的实例,具体学习了进程的生命周期、如何查看和管理进程,使用ps和top命令来查看静态和动态进程信息,使用kill发送信号控制进程,以及作业控制和/proc目录的基本用法。重点内容如下:
进程是系统进行资源分配和调度的独立单位,拥有独立的地址空间,而线程是进程的实际运作单位,是CPU调度的最小单位,线程共享它们所属进程的资源。
可以使用top或htop命令来观察系统资源的实时占用情况,通过排序功能找出CPU或内存占用最高的进程。
使用kill发送SIGTERM(信号15)通常可以优雅地终止进程,让进程有机会进行清理和保存状态后再关闭。
运行进程的优先级会影响系统性能,因为高优先级的进程会更频繁地获得CPU时间,从而可能导致低优先级进程饿死或响应速度慢。正确设置优先级可以确保关键任务得到足够的CPU时间,同时使得系统的资源分配更加高效。