Linux进程管理

什么是进程?

程序放置在存储媒体中(如:硬盘,光盘,软盘,磁带等),为实体文件的形态存在。
进程:程序被触发后,执行者的权限与属性/程序中程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是一个正在运行中的程序。
进程实际就是系统未完成并且正在进行的工作。

进程的状态

R(running)该程序正在运行中
S (sleeping)该程序目前正在睡眠状态(idle),但可以被唤醒
D不可被唤醒的睡眠状态,通常进程可能在等待I/O的情况
T 停止状态(stop)可能是在工作控制(背景暂停)或出错(traced)状态
Z(Zombie)僵尸状态,程序已经终止但却无法被移除至内存外

注意:
sleeping和stop区别:sleeping可以被唤醒,stop默认情况不能唤醒,除非用命令。

查看进程

  1. 图片方式查看
    命令: gnome-system-monitor
    在这里插入图片描述
  2. 进程查看命令
    ps (process scan)进程扫描
    ps a 显示当前环境中运行的进程
    在这里插入图片描述
    ps -A 系统中的所有进程,和-e差不多
    在这里插入图片描述
    ps -a 除环境信息之外当前环境中运行的所有进程(不包括环境本身的进程)
    在这里插入图片描述
    ps -d 显示除shell之外的所有进程
    在这里插入图片描述
    ps e 显示进程扩展信息,调用的系统资源环境
    在这里插入图片描述
    ps x 显示所有有输出设备的程序,有终端
    在这里插入图片描述
    ps -u 显示进程用户信息 userlist
    在这里插入图片描述
    ps f显示进程的从属关系。父级进程结束,子进程不一定结束,父级进程强行关闭,改叫孤儿进程。孤儿进程受初始化进程的控制,可能会出现异常。
    在这里插入图片描述

ps常用组合

  1. ps aux 显示系统中所有进程并显示进程用户
    在这里插入图片描述
  2. ps ef 显示进程详细信息并显示进程父子关系
    在这里插入图片描述
  3. ps ax 显示当前系统中的所有进程
    在这里插入图片描述
  4. pstree 显示当前系统的进程树(systemd是系统的初始化进程)
    在这里插入图片描述

显示进程指定信息
格式: ps -o *** 显示进程的指定信息

命令说明
ps -o comm进程名称
ps -o user进程所有人
ps -o group进程所有组
ps -o %cpu进程中cpu的使用率
ps -o %mem进程中内存使用率
ps -o pid进程id
ps -o nice进程优先级

例如:
显示进程的名称,优先级,所有人,所有组,cpu使用率,内存使用率以及进程id
在这里插入图片描述

进程排序
ps -ax - -sort=+%cpu | -%cpu
ps -ax - -sort=+%mem | -%mem
其中,+表示升序排列,–表示降序排列
例如:获得系统中内存使用量排在前5的进程的id
(先取前6包括表头,再取后5去掉表头)
在这里插入图片描述
或者
在这里插入图片描述

stat中显示的信息

S进程状态
l内存中有锁定空间
N优先级低
<优先级高
+前台运行
s顶级进程

例如:下图中Ss表示此进程为顶级进程,S+表示此进程正在前台运行,SNl表示此进程内存中有锁定空间,优先级低。
在这里插入图片描述

进程优先级
(1)进程优先级范围
-20~19 数值越小优先级越高
(2)优先级查看
命令:
ps ax -o pid,nice,comm
在这里插入图片描述
(3)指定某个优先级开启进程
命令:
nice -n 优先级数字 进程名称
例如:nice -n -5 gedit 开启gedit并指定优先级为-5
在这里插入图片描述
(4)改变进程优先级
命令:
renice -n 优先级数字 进程pid
例如:
在这里插入图片描述

环境中进程的前台调用

jobs查看被打入环境后台的进程(+表示默认操作,-表示次默认,‘ ’表示没有优先级)
ctrl+z把占用终端的进程打入后台
fg jobsnum把后台进程调回前台
bg jobsnum把后台暂停的进程运行
comm &让命令直接在后台运行

例如:
在这里插入图片描述
注意:
当不写jobsnum时,默认调回优先级高的进程。

进程信号

1.常用信号等级

1进程重新加载配置
2删除进程在内存中的数据
3删除鼠标在内存中的数据
9强行结束单个进程(不能被阻塞)
15正常关闭进程(可能会被阻塞)
18运行暂停的进程
19暂停某个进程(不能被阻塞)
20把进程打入后台(可以被阻塞)
man 7 signal查看信号详细信息

kill -信号 进程pid
killall -信号 进程名字
pkill -u student -信号(切换到student用户下)

例如:删除pid为5109的进程在内存中的数据
在这里插入图片描述
关闭名字包括vim的进程(执行后进程被停止)
在这里插入图片描述
强行结束vim进程
在这里插入图片描述

进程的动态监控

命令:top

1显示cpu每个核的负载
s调整刷新的频率
ccpu负载排序
m内存使用量排序
h查看帮助
u查看指定用户进程
k对指定的进程发起信号
z显示颜色
b高亮显示
q退出

例如:在真机中
在这里插入图片描述
注意:
top命令每回车一次就自动刷新一次

控制服务

  1. 什么是服务?
    系统中运行的对于系统本身没有意义,但是对客户主机有重大意义的程序叫做服务性软件,简称服务。
    服务器:安装了服务性软件的系统
  2. 用什么控制服务?
    系统初始化进程可以对服务进行相应的控制。
  3. 当前系统初始化进程是什么?
    systemd   系统初始化进程
    pstree   显示系统中的进程树
  4. 进程控制命令
    ssh -------->sshd
    client    server
    客户端   服务器端
命令说明
systemctl服务控制命令
systemctl status sshd查看服务状态(inactive不可用,active可用)
systemctl start sshd开启服务
systemctl stop sshd关闭服务
systemctl restart sshd重启服务
systemctl reload sshd重新加载服务配置
systemctl enable sshd设定服务开机启动
systemctl disable sshd设定服务开机不启动
systemctl list-units列出已经开启服务当前状态
systemctl list-unit-files列出所有服务的开机状态(disable,enable,static)
systemctl list-dependencies列出服务的依赖
systemctl set-default multi-user.target设定系统启动级别为多用户模式(无图形)
systemctl set-default graphical.target设定系统启动级别为图形模式
systemctl mask sshd冻结服务
systemctl unmask sshd解除冻结

例如:查看当前服务的状态
在这里插入图片描述
关闭服务
在这里插入图片描述
重启服务
在这里插入图片描述
设定服务开机不启动
注意:
disable操作后,再次打开虚拟机sshd服务不会开启。
在这里插入图片描述
列出已经开启服务当前状态
在这里插入图片描述
列出所有服务开机启动的状态
在这里插入图片描述
注意:
所有的服务有四种状态:static,disabled,enabled,masked。将masked封锁状态下的服务改为unmask解锁,命令为:systemctl unmask服务名/进程名。然后该服务的状态变为static,disabled,enabled中的一个。

列出所有服务的依赖
在这里插入图片描述
设定系统启动级别为多用户模式(无图形)
在这里插入图片描述
冻结服务
在这里插入图片描述
解除冻结
在这里插入图片描述
另外,解锁其他服务的步骤:
1.先列出所有服务开机启动时的状态systemctl list-unit-files
在这里插入图片描述
2.将状态为masked的服务tmp.mount解锁,命令为:systemctl unmask 服务名
在这里插入图片描述

可以看到tmp.mount的状态变为disabled,恢复它被锁住masked状态的命令为:systemctl mask 服务名
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值