1、进程:已启动的可执行程序的运行中实例 (存储在硬盘的叫称程序,调度到内存叫进程)
linux系统中第一个进程叫:systemd
进程组成部分:已分配内存的地址空间、安全属性(所有权凭据和特权)、程序代码的一个或多个执行线程、进程状
态。
2、Linux下进程的状态
3、liinux将内存分为两段:用户空间、内核空间;
4、ps命令:用于查看系统中的进程状态(静态查看)
注:首先明确的是:ps命令仅用于静态查看系统进程信息+
选项:
-a 显示系统的所有进程,包括其他用户的进程
-u 用户以及其他详细信息
-x 显示没有控制终端的进程
常用:(1)ps aux 显示所有的各类进程信息
(2)ps j 显示用作业有关的信息
PGID:进程组首进程的PID,通常是作业管道中的第一个进程(ps j 所列当前所有进程的第一个进程PID)
SID:会话首进程的PID,对于作业而言,通常是正在运行终端的交互SHELL(当前所用BASH的PID)
5、pstree命令:查看系统和单个用户的进程树(以进程树的形式输出所有进程)
-p 在输出进程树时加上对应进程号
注:还可加用户: 如: # pstree student 以数的形式展示所有隶属于student用户的进程。
6、top命令:动态查看/显示进程信息 (动态查看) 实时进程监控(1)概念了解
a、top与ps比较:top动态输出进程信息,并且可以配置间隔持续刷新时间
ps静态输出进程信息;
b、CPU时间:进程启动以来总的处理时间;
c、top、gnome-system-monitor、w、uptime命令:用于查看系统的时间以及CPU负载均衡(与top命令输出的
第一行相同)
(GNOME 系统监控)gnome-system-monitor:图形界面查看系统信息
(2)top显示简介:系统进程的动态视图
top —22:56:22(系统时间) up50min(开机时间) 2users(开启终端数) load average: 0.04(最近一分) 0.09(最
近五分) 0.10(最近15分) 注:load average查看方式从右往左看,变大cpu忙,变小cpu不忙
tasks:
%cpu(s) 5.8us(已用百分比) 0.8sy 0.0ni 93.4id(空闲百分比)
Kib Mem (以kb为单位)
top命令输出列表中的含义:
VIRT(虚拟内存):是进程正在使用的所有内存(ps命令中标识为VSZ)
RES(常驻内存):进程所使用的物理内存(ps命令中标识为RSS)
top监控内部命令键
键 | 目的 |
?或 h | top交互式中的帮助 |
l、t、m | 切换到负载、线程、内存的标题行 |
s | 更改信息刷新频率,以秒计时(0.5,1,2) |
u/U | 过滤出具体用户所对应的进程 |
k | 中断进程,若有提示,键入信号数(如:9) |
M | 按照内存使用率,降序排列进程列表 |
P | 按照处理器使用率,降序排列进程列表 |
W | 写入当前的显示配置,默认会在用户主目录下创建 .toprc 文件记录信息 |
r | 更改进程的优先级(nice值); 提示后先键如PID,再键入nice值 |
q | 退出 |
(1)概念了解
a、top与ps比较:top动态输出进程信息,并且可以配置间隔持续刷新时间
ps静态输出进程信息;
b、CPU时间:进程启动以来总的处理时间;
c、top、gnome-system-monitor、w、uptime命令:用于查看系统的时间以及CPU负载均衡(与top命令输出的
第一行相同)
(GNOME 系统监控)gnome-system-monitor:图形界面查看系统信息
(2)top显示简介:系统进程的动态视图
top命令输出列表中的含义:
VIRT(虚拟内存):是进程正在使用的所有内存(ps命令中标识为VSZ)
RES(常驻内存):进程所使用的物理内存(ps命令中标识为RSS)
7、PID:进程号,唯一标识一个进程 PPID:父进程
pidof命令:用于查看某个指定服务进程的PID值
格式:pidof sshd 查看sshd的PID值(已启用的进程)
8、终止Linux进程
(1)向前台进程发信号
Ctrl+z:暂停
Ctrl+c:中止
Ctrl+\:核心转储(程序保存内存镜像),然后终止
(2)系统管理员常用日常进程管理的基本信号
用法:1、可以使用信号编号:如 # kill -9 httpd
2、可以使用短名称和正确名称来操作:
如:kill HUP httpd 或 kill SIGHUP httpd(正确名称是:SIG+短名称)
信号编号 | 短名称 | 定义 | 目的 |
1 | HUP | 挂起 | 报告中断控制进程的终止,也用于进程初始化(重新加载配置 文件) |
2 | INT | 键盘中 断 | 相当于Ctrl+c(可能被拦截) |
9 | KILL | 中断 | 强制中断,不可拦截 |
15(默认 值) | TERM(无法拦 截) | 终止 | 友好中断,可能被拦截 |
(1)kill命令:用于终止某个指定PID号的服务进程
格式: kill PID号
注:kill -9 进程号(PID值) 数字9:强制关闭进程,无法拦截
-15 进程号 数字15:导致程序终止,但有可能被拦截
(2)killall命令:用于终止某个服务所对应的所有进程(可发送信号到一个或多个与选择条件匹配的进程)
格式: killall 服务名
(3)pkill命令:与killall类似,可以向多个进程发送信号
常用组合:
UID:拥有该进程的用户的ID
GID:进程隶属的组的GID
父级:该进程的父进程PID
终端:运行该进程的终端
另附:如果想将前台正在运行的进程发送到后台并暂停,使用Ctrl+z
9、tty用于显示当前处于哪个终端(虚拟终端)
tty1 -- tty6:Linux默认有六个终端
终端切换:Ctrl+Alt+F1/2/3/4/5/6 来分别切换到具体的终端
10、进程的前后台运行
在后台运行:
任何命令或管道符都可以在后台启动,只需在命令行的结尾处加个 & 即可;
如:# sleep 10000 & 在后台休眠10000s,在前台让然可以做其他工作
(1) jobs:查看前后台正在运行的工作
fg: 将后台工作转至前台 格式: fg %作业编号
bg: 启动在后台运行的已暂停的进程 格式: bg %作业编号
11、Shell 应用
(while true; do echo "abc" >> file; sleep 1;done)系统会把内部shell脚本当作一个进程使用
12、jobs命令:查看当前的进程