管理Linux系统中的进程

本文详细介绍了Linux系统中的进程概念,包括进程与程序的区别、进程状态、线程与进程的关系,以及如何通过命令行工具如ps、top和systemctl进行进程查看、管理和优先级调整。此外,还探讨了系统守护进程及其管理,特别是systemd服务的控制方法。
摘要由CSDN通过智能技术生成

1.什么是进程?

(1)进程与程序
    在Linux系统当中,触发任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,称为PID,同时依据启发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设定。之后,这个PID能够在系统上面进行的动作,就和这个PID的权限有关。

    程序是为了完成某种任务而设计的软件,是存储在磁盘上包含可执行的机器指令和数据的静态实体。
    进程是一个程序一次执行的过程,在操作系统中执行特定的任务,是一个随执行过程不断变化的实体,和程序要包含指令和数据一样,进程也包含程序计数器和所有CPU寄存器的值,同时它的堆栈中存储着如子程序参数、返回地址以及变量之类的临时数据。当前的执行程序,或者说进程,包含着当前处理器中的活动状态。进程是Linux系统中基本的调度单位。
    进程具有独立的权限与职责,如果系统中某个进程崩溃,它不会影响到其余的进程,每个进程运行在其各自虚拟地址空间中,通过内核控制下的通信机制,它们之间才能发生联系。
进程在生命期内将使用系统中的资源,它利用系统中的CPU来执行指令,用物理内存来放置指令和数据。使用文件系统提供的功能打开并使用文件,同时直接或间接地使用物理设备。)

(2)进程状态

状态 定义
R 可执行状态(RUNNING,READY)
S 可唤醒睡眠状态
D 不可唤醒睡眠状态
T 暂停状态
Z 僵死态

    R:ready准备完全,所有东西都已经加载完毕,就等着cpu对它进行处理(处在进程队列),running是cpu正在进行处理的那个进程。
    S:程序在使用cpu进行处理时,所使用的cpu时间已经到达了限制,那么cpu就会立即把它终止掉,去处理下一个进程,等处理完毕,再去唤醒刚才的程序。
    D:一般情况下,程序不可唤醒状态发生在一个程序需要去加载磁盘里比较大的文件时,在程序运行时突然需要这个数据了,它需要去磁盘里面加载,当它在没有加载完毕之前,它的状态是不可被唤醒的。
    T:停止状态,打开一个gedit,编辑内容,然后在shell界面执行“ctrl+z”将gedit进程打入后台,gedit编辑任务就暂停了(一个进程停止不等于进程结束)。
    Z:在系统当中,程序在运行过程中,会用到系统资源,程序结束后,程序所占用的系统资源应该全部被释放掉。
    有一类程序:这个程序本身已经结束了,但它所使用到的系统资源还抓着不放,这样的进程状态叫做僵死态。一般情况下,是因为系统当中的程序在编写时候bug所导致的,就是它在结束以后仍然持续的去抓着系统当中的资源不放。
(3)线程与进程的区别在哪里?
    线程是程序调用的最小单位;进程是资源调用的最小单位。
    进程和进程之间的沟通,因为系统资源分配问题,沟通不容易,为了使资源调用更加快捷,所以提出了线程;
    线程和线程之间的数据是互通的,它们共用了一部分环境变量,使得线程和线程之间的沟通更快捷一点。

2.进程查看

(1)图形方式查看:gnome-system-monitor
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)进程查看命令ps:静态查看进程信息

pstree 查看进程树
在这里插入图片描述
系统启动后,systemd为初始化程序,不会自己关闭结束自己,只有关机才可以,或者结束所有子进程后,该初始化进程才会被关闭;
一般由初始化程序来控制其它进程的开始和结束;
并不是父级进程结束以后子进程一定会结束,剩下的子进程被称为孤儿进程
ps自己所在shell中运行的进程
直接执行不加任何选项的ps命令时,则只显示当前用户会话中打开的进程。
PID表示该进程的唯一ID号
TTY表示该进程在哪个终端上运行。不是从终端启动的进程或者与终端机无关的进程显示为 ?
TIME该进程使用CPU的累计时间
CMD该进程所运行的命令

[root@workstation Desktop]# ps 
  PID TTY          TIME CMD
 2549 pts/0    00:00:00 bash
 2753 pts/0    00:00:00 ps

ps a 在shell中运行的所有进程,包括shell的环境bash

[root@workstation Desktop]# ps a
  PID TTY      STAT   TIME COMMAND
 1155 tty1     Ssl+   0:00 /usr/libexec/gdm-wayland-session gnome-session --auto
 1239 tty1     Sl+    0:00 /usr/libexec/gnome-session-binary --autostart /usr/sh
 1279 tty1     Sl+    0:05 /usr/bin/gnome-shell
 2328 tty2     SNl+   0:00 /usr/libexec/tracker-miner-fs
 2350 tty2     Sl     0:00 /usr/libexec/ibus-engine-simple
 2549 pts/0    Ss     0:00 bash
 3039 pts/0    R+     0:00 ps a
[root@workstation Desktop]# 

ps -a 在shell中运行的所有进程,不包括shell环境本身信息bash

[root@workstation Desktop]# ps -a
  PID TTY          TIME CMD
 1239 tty1     00:00:00 gnome-session-b
 1279 tty1     00:00:05 gnome-shell
  2316 tty2     00:00:00 seapplet
 2325 tty2     00:00:00 tracker-miner-a
 2328 tty2     00:00:00 tracker-miner-f
 2350 tty2     00:00:00 ibus-engine-sim
 2768 pts/0    00:00:00 ps
[root@workstation Desktop]#

ps -u 以用户为归类来显示进程状态信息

字段 解释
USER 用户名称
PID 进程ID
%CPU CPU用量百分比
%MEM 内存用量百分比
VSZ 占用虚拟内存大小
RSS 常驻内存集大小
TTY 字符终端
STAT 进程状态
START 运行时间
TIME 占用cpu时间
COMMAND 进程名称
[root@workstation Desktop]#ps -u
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      189
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值