首页 > 系统相关 >Linux学习笔记(11)——进程管理与SELinux初探

Linux学习笔记(11)——进程管理与SELinux初探

时间:2022-11-13 10:11:27浏览次数:48  
标签:11 00 admin SELinux PID Linux 进程 localhost

进程管理与SELinux初探

一、什么是进程

Linux中触发任何一个事件时,系统都会将它定义为一个进程,并且给予这个进程一个ID,称为PID,同时根据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置

1.1 进程与程序(process & program)

  • 程序:通常为二进制程序,放置在存储媒介中(硬盘、软盘等),以物理文件的形式存在

  • 进程:程序被触发后,执行者的权限与属性、程序的代码与所需数据等都会被加载到内存中,操作系统给予这个内存中的单元一个标识符(PID),可以说进程就是一个正在运行的程序

    [admin@localhost ~]$ bash
    [admin@localhost ~]$ ps -l
    F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY           TIME CMD
    0 S  1000  22567  22557  0  80   0 - 29107 do_wai pts/0     00:00:00 bash
    0 S  1000  22704  22567  0  80   0 - 29082 do_wai pts/0     00:00:00 bash
    0 R  1000  22747  22704  0  80   0 - 38332 -      pts/0     00:00:00 ps
    
  • fork and exec:程序调用的流程

    • Linux的程序调用通常称为fork-and-exec的流程。进程都会借由父进程以复制(fork)的方式产生一个一模一样的子进程,然后被复制出来的子进程再以exec的方式来执行实际要执行的进程,最终就成为一个子进程
  • 系统或网络服务:常驻在内存的进程(服务daemon)

二、任务管理(job control)

2.1 什么是任务管理

执行任务管理的操作中,每个任务都是目前bash的子进程,即彼此之间是有相关性的,无法由任务管理的方式由tty1的环境去管理tty2的bash

2.2 job control 的管理

  • 直接将命令丢到后台中执行的&

  • 将目前的任务丢到后台中暂停:[Ctrl]+Z

  • 查看目前的后台任务状态:jobs

    jobs [-lrs]
    选项与参数:
    -l  :列出PID
    -r  :仅列出正在后台run的任务
    -s  :仅列出正在后台暂停(stop)的任务
    
    [admin@localhost ~]$ jobs -l
    [1]- 24196 Stopped                 vim .bashrc
    [2]+ 24216 Stopped                 find / -print
    
    • +代表最近被放到后台的任务,-代表最近第二个被放到后台的任务
  • 将后台任务拿到前台来处理:fg

    不加参数默认取出"+",只有"-"则取出-
    [admin@localhost ~]$ jobs -l
    [1]- 24196 Stopped                 vim .bashrc
    [2]+ 24216 Stopped                 find / -print
    [admin@localhost ~]$ fg %1  <== %可以省略
    vim .bashrc
    
    [1]+  Stopped                 vim .bashrc
    [admin@localhost ~]$ jobs -l
    [1]+ 24196 Stopped                 vim .bashrc
    [2]- 24216 Stopped                 find / -print
    
  • 让任务在后台下的状态变成运行中:bg

  • 管理后台当中的任务:kill

    • -9:强制删除一个不正常的任务
    • -15:以正常步骤结束一项任务

2.3 脱机管理问题

  • nohup

三、进程管理

3.1 查看进程

  • ps:将某个时间点的进程运行情况截取下来

    [admin@localhost ~]$ ps aux     <==查看系统所有的进程
    [admin@localhost ~]$ ps -lA     <==也是能够查看系统所有的进程
    
    • 仅查看自己bash的进程:【ps -l
    • 查看所有系统运行的进程:【ps aux
  • top:动态查看进程的变化

    [admin@localhost ~]$ echo $$
    22704
    [admin@localhost ~]$ top -d 2 -p 22704
    top - 09:17:47 up 1 day,  3:44,  2 users,  load average: 0.22,  0.10, 0.07
    Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0   zombie
    %Cpu(s): 16.2 us,  3.0 sy,  0.0 ni, 80.7 id,  0.0 wa,  0.0 hi,      0.0 si,  0.0 st
    KiB Mem :   995676 total,    67960 free,   632992 used,     294724 buff/cache
    KiB Swap:  2097148 total,  1524988 free,   572160 used.     135296 avail Mem 
    
       PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM       TIME+ COMMAND                                            
     22704 admin     20   0  116460   3132   1792 S  0.0  0.3       0:00.06 bash                             
    
    
  • pstree:进程树

    [admin@localhost ~]$ pstree -Aup
    systemd(1)-+-ModemManager(18342)-+-{ModemManager}(18347)
               |                     `-{ModemManager}(18353)
               |-NetworkManager(786)-+-{NetworkManager}(792)
               |                     `-{NetworkManager}(795)
               |-VGAuthService(5071)
               |-accounts-daemon(18301)-+-{accounts-daemon}(18302)
               |                        `-{accounts-daemon}(18307)
               |-agetty(23381)
               |-agetty(23385)
                ......
    

3.2 进程的管理

通过给予进程一个信号(signal)去告知进程做什么

代号 名称 内容
1 SIGHP 重新启动
2 SIGINT [Ctrl] + C
9 SIGKILL 强制中断
15 SIGTERM 正常终止
19 SIGSTOP [Ctrl] + Z
  • kill -signal PID

  • killall -signal 命令名称
    将系统当中所有以某个命令名称启动的进程全部删除

3.3 进程的执行顺序

  • Priority与nice值
  • nice:新执行的命令给予新的nice值
  • renice:已存在进程的nice重新调整

3.4 查看系统资源信息

  • free:查看内存使用情况

    [admin@localhost ~]$ free -m
              total        used        free      shared  buff/cache   available
    Mem:            972         616          72          52             283         132
    Swap:          2047         558        1489
    
  • uname:查看系统与内核信息

    [admin@localhost ~]$ uname -a
    Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
    
  • uptime:查看系统启动时间与任务负载

    [admin@localhost ~]$ uptime
    09:42:55 up 1 day,  4:09,  2 users,  load average: 0.77, 0.19, 0.10
    
  • netstat:追踪网络或socket文件

  • dmesg:分析内核产生的信息

  • vmstat:检测系统资源变化

四、特殊文件与进程

4.1 SUID/SGID权限的命令执行状态

4.2 /proc/*代表的意义

主机上各个进程的PID都以目录的形式存储在/proc中

五、SELinux初探

5.1 什么是SELinux?

【Security Enhanced Linux】

SELinux是在进行进程、文件等详细权限配置时依据的一个内核模块。由于启动网络服务的也是进程,因此刚好也是能够控制网络服务能否读写系统资源的一道关卡。

  • 传统:自主访问控制(Discretionary Access Control,DAC)
  • SELinux:强制访问控制(Mandatory Access Control,MAC)

标签:11,00,admin,SELinux,PID,Linux,进程,localhost
From: https://www.cnblogs.com/I-am-Sino/p/16885468.html

相关文章

  • VMWare Linux系统磁盘扩容
    VMWareLinux系统磁盘扩容当我们在VMwareLinux虚拟机安装软件的时候,发现磁盘不够了,可以考虑给磁盘扩容,而不是重建虚拟机。1.修改磁盘容量点击编辑虚拟设置选择磁......
  • 11.13分享
    雷雨心《记·念》时间一转眼就过去了三年,一切在我心里开的好皎洁现在倒计时也不剩几天,脚边的纸片,来不及去捡仿佛是快要冲破压力的茧,离校后大家又各自熬夜早上......
  • 2211-12 Hello Flask!
    本篇记录来自Flask入门教程第2章:Hello,Flask!第2章:Hello,Flask!追溯到最初,Flask诞生于ArminRonacher在2010年愚人节开的一个玩笑。后来,它逐渐发展成为一个......
  • 计算机基础和Linux安装
    计算机基础和Linux安装1.计算机系统一个完整的计算机系统由硬件系统和软件系统两大部分组成。1.1冯·诺伊曼体系结构8个二进制位(bit,b)为1个字节(byte,B)。00000000......
  • 最完美WIN11_Pro_22H2.22623.891软件选装纯净版VIP37.3
    【系统简介】=============================================================1.本次更新母盘来UUP WIN11_Pro_22H2.22623.891。2.不支持更新,更新后精简版更新后的问题玩过......
  • L01.linux技术-bond-----交换机对应配置
    通常情况下,虚拟机的聚合模式bond4对应交换机的动态聚合(LACP),虚拟机的bond0对应交换机的静态聚合,虚拟机如果是主备模式,那么交换机不需要做聚合,只需要划分接口vlan即可。......
  • 11.12 解题报告
    因为是IOI赛制所以不存在期望得分T1实际得分:\(100\)pts用时:\(20\)min简单构造,直接一个a剩下的都是b就行。signedmain(){ intn=read(); putchar('a'); for(......
  • 2022-11-12学习内容
    1.网页的相关概念1.1新建文本文档.html<imgsrc="apple.png">效果(所在路径下有apple.png):2.案例-购物车-购物车列表展示2.1ShoppingChannelActivity.java新增内容:......
  • 11.vim模式使用过程中常用快捷键
    一.普通模式#1.命令光标跳转G      #光标跳转至末端gg     #光标跳转至顶端Ngg    #光标跳转至当前文件内的N行$      #光......
  • Linux 服务管理
    查看运行级别:runlevel修改运行级别:init运行级别默认运行级别:vim/etc/inittab服务自启动:指让服务在系统开机后随之启动服务查看服务自启动状态:chkconfig--list源码包......