Linux基本配置和管理 8 ---- 程序管理与SELinux初探

简介: 一 什么是进程      1 在Linux系统当中,触发任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,称为PID,同时依据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置      2 我们说过...


一 什么是进程

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

     2 我们说过,系统应该是仅认识二进制文件的,那么当我们要让系统工作的时候,当然就需要启动一个二进制文件,那个二进制文件就是程序

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

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

     4 连续执行两个bash后,第二个bash的父进程就是前一个bash,因为每个进程都有一个PID,那某个进程的父进程可以通过PPID来判断

     5 在Linux的过程调用中通常称为fork-and-exec的流程:进程都会通过父进程以复制fork的方式产生一个一模一样的进程,然后被复制出来的子进程再以exec的方式来执行实际要进行的进程,最终就成为一个子进程的存在

     6 系统先以fork的方式复制一个与父进程一模一样暂存进程,这个进程与父进程唯一的区别就是PID不同,但是这个暂存进程还会多一个PPID参数,然后暂存进程开始以exec的方式加载实际要执行的程序,最终成为子进程

 

二 工作管理

     1 在进行工作管理的行为中,其实每个工作都是目前bash的子进程,即彼此之间是有相关性的。即我们无法以工作管理的方式从tty1的环境去管理tty2的bash

     2 假设我只有一个终端,因此在可以出现提示符让你操作的环境就称为前台,至于其他工作就可以让你放入后台去暂停或运行。要注意的是,放入后台的工作想要运行时,它必须不能够与用户互动。

     3 总之要进行工作管理的限制是:

        1 这些工作所触发的进程必须来自于你shell的子进程

        2 前台:你可以控制与执行命令的这个环境称为前台工作

        3 后台:可以自行运行的工作,你无法使用Ctrl+c终止它,可使用bg/fg调用该工作

        4 后台中“执行”的进程不能等待终端的输入

     4 直接将命令丢到后台中“执行”的&,这个&代表的是“将工作丢到后台中,不怕被Ctrl+c中断

     5 将目前的工作丢到后台中“暂停”,Ctrl+z

     6 在vi的一般模式下,按下Ctrl+z这两个按键,屏幕上面会出现[1],表示这是第一个工作,而那个+代表最近一个被丢进后台的工作,且目前在后台下默认会被取用的那个工作。而Stopped表示的是这个工作是暂停的

     7 其实后台的工作+代表的是最近被放到后台的工作号码,-代表最近最后第二个被放置到后台的工作号码,而超过最后三个以上的工作,就不会有+/-符号存在了

     8 将后台的工作拿到前台来处理fg,fg %jobnumber,jobnumber是工作号码

     9 让工作在后台下的状态变成运行中bg,bg %jobnumber,jobnumber是工作号码

    10 管理后台的工作kill

         kill -signal %jobnumber

         -1,重新读取一次参数的配置文件

         -2,代表由键盘输入Ctrl+c同样的操作

         -9,立刻强制删除一个工作

         -15,以正常的程序终止一个工作,并将该工作强制删除

    11 kill后面接的数字默认会是PID,如果想要管理bash的工作控制,就得要加上%数字了

    12 脱机管理问题

         1 我们在工作管理中所提到的“后台”指的是在终端机模式下可以避免Ctrl+c中断的一个情境,并不是放到系统的后台中

         2 我们可以使用nohup命令实现真正的放到系统后台来运行

            nohup 命令与参数       -->在终端机的前台工作

            nohup 命令与参数  &  -->在系统的后台工作

         3 nohup并不支持bash内置的命令,因此你的命令必须要是外部命令才行

         4 如果我们想要让在后台的工作在你注销后还能够继续执行,可以使用nohup命令


三 进程管理

     1 进程的查看分为两种静态的ps以及动态的top

     2 ps相关命令

        ps aux      -->查看系统所有的进程数据

        ps -lA        -->查看所有系统的数据

        ps axjf       -->连同部分进程树的状态

     3 通常,造成僵尸进程的成因是因为该进程应该执行完毕,或者是因故应该要终止了,但是该进程的父进程却无法完整的将该进程结束掉,而造成那个进程一直在内存中。通过ps axu命令查看进程状态,如果在某个进程的最末尾有<defunct>就说明是僵尸进程

     4 top动态的查看进程的变化,top -d 数字  -->数字表示要几秒钟刷新一下

     5 一般来说我们经常需要找到最损耗资源的那个进程,大多数都是利用top这个程序,然后强制与CPU使用资源来排序

     6 所有的进程都是依附在init这个进程下面的,init这个进程的PID是1号,因为它是由Linux内核所主动调用的第一个进程

     7 系统资源的查看

        1 free 查看内存的使用情况

        2 uname 查看系统与内核相关信息

        3 uptime 查看系统启动时间与工作负载

        4 netstat 跟踪网络

        5 dmesg 分析内核产生的信息


四 SELinux初探

     1 什么是SELinux呢?其实就是安全强化Linux的意思

     2 SELinux是通过MAC的方式来控管进程,它控制的主体是进程,而目标则是该进程能够读取的文件资源

     3 SELinux支持三种模式

        ecforcing:强制模式,代表SELinux正在运行中

        permissive:宽容模式,代表SELinux正在运行中,不过仅会有警告信息并不会有实际限制domain/type的访问

        disabeld:关闭,SELinux并没有实际运行

     4 我们可以通过getenforce来查看当前的SELinux是哪一种模式

     5 如果要启动SELinux的话,我们应该修改/etc/selinux/config,将这个文件的SELINUX=enforing设置妥当,并且指定SELINUXTYPE=targeted这一设置,并且到/boot/grub/menu.lst这个文件去,看看内核有没有关闭SELinux



目录
相关文章
|
11天前
|
安全 Ubuntu Java
Linux配置使用篇
Linux配置使用篇
|
23天前
|
存储 负载均衡 索引
linux7安装elasticsearch-7.4.0集群配置
linux7安装elasticsearch-7.4.0集群配置
109 0
|
23天前
|
存储 算法 Linux
【Linux 应用开发 共享内存】深入理解和实践 ftruncate:共享内存的有效管理
【Linux 应用开发 共享内存】深入理解和实践 ftruncate:共享内存的有效管理
54 5
|
10天前
|
网络协议 Linux
在Linux中,管理和配置网络接口
在Linux中管理网络接口涉及多个命令,如`ifconfig`(在新版本中被`ip`取代)、`ip`(用于网络设备配置)、`nmcli`(NetworkManager的CLI工具)、`nmtui`(文本界面配置)、`route/ip route`(处理路由表)、`netstat/ss`(显示网络状态)和`hostnamectl/systemctl`(主机名和服务管理)。这些命令帮助用户启动接口、设置IP地址、查看连接和路由信息。不同发行版可能有差异,建议参考相应文档。
19 4
|
4天前
|
消息中间件 监控 Linux
Linux进程和计划任务管理
通过这些命令和工具,你可以有效地管理Linux系统中的进程和计划任务,监控系统的运行状态并保持系统的稳定和可靠性。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
98 2
|
11天前
|
存储 缓存 监控
Linux内存和硬盘空间管理技巧
了解Linux内存和硬盘管理技巧,提升系统性能和稳定性。使用`free`, `top`, `vmstat`监控内存,通过`sync`, `echo 1 &gt; /proc/sys/vm/drop_caches`清理缓存。利用Swap分区释放内存。借助`df`, `du`检查硬盘空间,清理无用文件,使用`clean-old`, `gzip`, `tar`压缩归档。查找大文件用`find`和`du`,确保
32 0
|
18天前
|
存储 固态存储 Unix
Linux中磁盘分区和文件系统管理
在Linux系统中,磁盘是存储数据的物理设备,如HDD或SSD,以文件形式存在于`/dev`目录下,如`sda`、`sdb`等。文件系统定义了如何在磁盘上组织和访问数据,常见的Linux文件系统有ext2、ext3、ext4、xfs等。通过虚拟机软件如VMware,用户可以向Linux虚拟机添加新的硬盘。
|
21天前
|
网络协议 Linux 网络安全
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
17 0
|
21天前
|
Linux
linux中服务管理
在Linux服务管理中,从传统的System V init到Upstart,再到广泛采用的systemd,管理方式不断发展。systemd以其强大的功能和依赖解决成为现代Linux的核心。`systemctl`是管理服务的关键命令,如启动(`start`)、停止(`stop`)、重启(`restart`)服务及设置开机启动(`enable`)或取消(`disable`)。了解和服务管理,特别是systemd和`systemctl`的使用,对系统管理员至关重要。其他如xinetd用于控制网络服务,而特定环境下有OpenRC等工具。
17 2
|
21天前
|
应用服务中间件 Linux PHP
Linux下安装php环境并且配置Nginx支持php-fpm模块
Linux下安装php环境并且配置Nginx支持php-fpm模块
18 0