Linux下系统进程及服务的控制

系统进程

什么是进程

进程就是系统未完成并且正在进行的工作

查看进程

1.图形查看

gnome-system-monitor
在这里插入图片描述

2.进程查看命令

ps -A #所有进程
ps -a #在当前环境中运行的进程,不包含环境信息
ps -u #显示进程用户信息
ps a #在当前用户环境中运行的进程
ps x #列出系统中所有运行包含tty输出设备
ps f #显示进程的父子关系
ps e #显示进程的详细信息(系统资源的调用)
  • ps -A #所有进程
    在这里插入图片描述
  • ps -a #在当前环境中运行的进程,不包含环境信息
    在这里插入图片描述
  • ps -u #显示进程用户信息
    在这里插入图片描述
  • ps a #在当前用户环境中运行的进程
    在这里插入图片描述
  • ps x #列出系统中所有运行包含tty输出设备
    在这里插入图片描述
  • ps f #显示进程的父子关系
    在这里插入图片描述
  • ps e #显示进程的详细信息(系统资源的调用)
    在这里插入图片描述

##ps常用组合

ps aux #显示系统中所有进程并显示进程用户
ps ef #显示进程详细信息并显示进程父子关系
ps ax #显示当前系统中的所有进程
pstree #显示当前系统的进程树
  • ps aux #显示系统中所有进程并显示进程用户
    在这里插入图片描述
  • ps ef #显示进程详细信息并显示进程父子关系
    在这里插入图片描述
  • ps ax #显示当前系统中的所有进程
    在这里插入图片描述
  • pstree #显示当前系统的进程树
    在这里插入图片描述

##显示进程指定信息

ps -o xxx #显示进程的指定信息
ps -o comm #进程名称
ps -o user #进程所有人
ps -o group #进程所有组
ps -o %cpu #进程cpu使用率
ps -o %mem #进程内存使用率
ps -o pid #进程id
ps -o nice #进程优先级
  • ps -o xxx #显示进程的指定信息
  • ps -o comm #进程名称
    在这里插入图片描述
  • ps -o user #进程所有人
    在这里插入图片描述
  • ps -o group #进程所有组
    在这里插入图片描述
  • ps -o %cpu #进程cpu使用率
    在这里插入图片描述
  • ps -o %mem #进程内存使用率
    在这里插入图片描述
  • ps -o pid #进程id
    在这里插入图片描述
  • ps -o nice #进程优先级,进程的优先级范围-20~19 ,优先级数字越小,进程优先级越高
    在这里插入图片描述

##进程排序

  • ps --sort=+%cpu|-%cpu #+加号可加可不加默认从低到高排列
    在这里插入图片描述
    在这里插入图片描述
  • ps --sort=+%men|-%men
    在这里插入图片描述
    在这里插入图片描述

##测试
抓取系统中内存使用量排在前五的进程的pid
首先我们可以通过指令
ps ax --sort=-%mem -o pid
查看系统中所有进程pid并按内存使用量由高到低排列
在这里插入图片描述
然后通过指令
head -n 6 | tail -n 5 或sed -n 2,6p
抓取前五行
在这里插入图片描述

在这里插入图片描述
##stat中显示的信息
可通过ps -o stat 查看
在这里插入图片描述
#此处为了便于stat中所有显示的信息的展示进程firefox与gedit的优先级已经被手动修改

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

3.进程优先级

(1)进程的优先级范围
-20~19 优先级数字越小进程优先级越高
(2)优先级查看
ps -o nice #常和comm,pid一同使用在这里插入图片描述
(3)指定某个优先级开启进程
nice -n 优先级数字 进程名称
nice -n -5 vim & #指定vim进程启动时优先级为-5
在这里插入图片描述
在这里插入图片描述
注意:"&"表示进程开启后打入后台,如果不加“&“符号 命令行就会被占用
(4)改变进程优先级
renice -n 优先级数字 +进程pid #指定已经启动进程优先级
renice -n 10 3529 #更改进程3529的优先级为10
在这里插入图片描述
在这里插入图片描述

4.环境中进程的前后台调用

  • jobs #查看被打入环境后台的进程
    在这里插入图片描述
    注意:
    “+“ 默认级
    “ -“ 次默认级
    无符号的没有优先级

  • ctrl+z ##将占用终端的进程暂停并打入后台
    在这里插入图片描述
    此时我们再打开gedit窗口
    在这里插入图片描述
    发现gedit已经被暂停,无法对其进行操作

  • fg ##把后台进程调回前台,直接执行会默认执行带“+“的程序
    在这里插入图片描述
    在这里插入图片描述
    当想指定后台某进程时可以用
    fg jobnumber 将指定进程调出
    fg 1 #将后台进程序号为1的进程调回前台
    在这里插入图片描述
    在这里插入图片描述
    注意:jobnumber时通过jobs命令查到的后台的进程的序号(不是pid)

  • bg ##把后台暂停的进程运行,直接执行会默认执行带“+“的程序
    在这里插入图片描述
    在这里插入图片描述
    bg jobnumber #将指定进程运行
    bg 3 #将后台进程序号为3的进程运行
    在这里插入图片描述
    在这里插入图片描述
    command & ##让命令直接在后台运行
    在这里插入图片描述

5.进程信号

(1)常用信号等级 (信号等级共有30个,以下只列出常用的,可通过man 7 signal 查看信号详细信息)

1 进程重新加载配置
2 删除进程在内存中的数据,对shell相当于ctrl+c 对系统中有锁存空间的(gedit)相当于关闭该进程
3 删除鼠标在内存中的数据 快捷键:ctrl+\ 应用:看视频时全屏鼠标消失
9 强行结束单个进程(不能被阻塞)
15 正常关闭进程 (可能会被阻塞)
18 运行暂停的进程
19 暂停某个进程 (不能被阻塞)
20 把进程暂停并打入后台(可以被阻塞)
  • kill -信号 进程pid
    在这里插入图片描述
  • killall -信号 进程名字
    在这里插入图片描述
  • pkill -u student(username) -信号 #对某用户所有进程
    在这里插入图片描述

6.进程的动态监控

top
在这里插入图片描述

1 显示cpu 每个核的负载
s 调整刷新频率
c CPU负载排序
m 内存使用量排序
h 查看帮助
u 查看指定用户进程
k 对指定进程发起信号
q 退出
  • 1:显示cpu 每个核的负载
    在这里插入图片描述
  • s:调整刷新频率为1s
    在这里插入图片描述
  • c:CPU负载排序
    在这里插入图片描述
  • m:内存使用量排序
    在这里插入图片描述
  • u:查看kiosk用户进程
    在这里插入图片描述
    在这里插入图片描述
  • k:对进程15361执行信号9
    在这里插入图片描述
    在这里插入图片描述

7.控制服务

(1)什么是服务
定义:系统中运行的对于系统本身没有意义,但是对客户主机有重大意义的程序叫做服务性软件简称服务,服务是一类进程。
(2)用什么控制服务
系统初始化进程可以对服务进行相应的控制

(3)当前系统初始化进程是什么
systemd ##系统初始化进程
pstree ##显示系统中的进程树
(4)进程控制命令
ssh------->sshd
client server

systemctl #服务控制
systemctl status sshd #查看服务
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(静态的),maskd(冻结的)
systemctl mask sshd #冻结sshd服务
systemctl unmask sshd #解锁sshd服务
systemctl list-dependencies #列出服务器的倚赖(倚赖:需要另一个服务是开启的)
systemctl set-default multi-user.target #设定系统启动级别为多用户模式(无图形)
systemctl set-default graphical.target #设定系统启动级别为图形模式
  • systemctl status sshd #查看服务
    在这里插入图片描述
  • systemctl stop sshd #关闭服务
    在这里插入图片描述
  • systemctl start sshd #开启服务
    在这里插入图片描述
  • systemctl disable sshd #设定服务开机不启动
    在这里插入图片描述
    在这里插入图片描述
  • systemctl enable sshd #设定服务开机启动
    在这里插入图片描述
    在这里插入图片描述
  • systemctl list-units #列出已经开启服务当前状态
    在这里插入图片描述
  • systemctl list-unit-files #所有服务开机启动的状态 disable(开机不自启),enable(开机自启),static(静态的),maskd(冻结的)
    在这里插入图片描述
  • systemctl mask sshd #冻结sshd服务
    在这里插入图片描述
    在这里插入图片描述
  • systemctl unmask sshd #解锁sshd服务
    在这里插入图片描述
    在这里插入图片描述
  • systemctl list-dependencies #列出服务器的倚赖
    在这里插入图片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章