热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

16进程管理与SElinux

文章目录16.1什么是进程16.1.1进程与程序(processc&progran)子进程和父进程forkandexec:程序调用的流程系统或网络服务:常驻在内存的进程16.2.2

文章目录

  • 16.1什么是进程
    • 16.1.1进程与程序( process c& progran)
      • 子进程和父进程
      • fork and exec:程序调用的流程
      • 系统或网络服务:常驻在内存的进程
    • 16.2.2 job control的管理
      • 直接将命令丢到后合中【执行】的&


  • 系统的进程有哪些状?

  • 不同的状态会如何影响系统的运行?

  • 进程之间是否可以互相管理?

  • 与进程有关的还有SElinux这个加强文件存取安全性的东西


16.1什么是进程
  • Linux下所有命令与你能够执行的操作都与权限有关

    • 系统如何判断你的权限
    • 13章账号管理的UID/GID,及文件属性
  • 【触发任何一个事件,系统都会将它定义为一个进程,给予这个进程一个PID,同时根据触发这个进程的用户与相关属性,给予这个PID一组权限)

  • 这个PID能在系统上面执行的操作就与这个PID权限有关

  • 什么叫【触发事件】

  • 什么情况下会触发一个事件

  • 同一个事件可否被触发多次


16.1.1进程与程序( process c& progran)


  • 【执行一个程序或命令】就可触发一个事件而获取一个PID

  • 每个进程都有三组权限
    • 每组都有r,w,x
  • 当root执行touch时,它获取的是UID/GID=0/0的权限
    • dmtsai(UID/GID=501/501)执行这个touch时,它的权限就跟root不同



  • 程序一般放在磁盘,然后用户的执行来触发
  • 触发后会加载到内存中成为个体,就是进程
  • 为让OS可管理这个进程,进程会给予执行者权限/属性等参数
    • 及进程所需要的脚本或数据,最后再给予PID
  • 操作系统通过这个PID来判断该进程是否有执行权限
    进程

  • 操作系统时,通常利用连接程序或直接在主机上面登录,
  • 然后获取我们的shell!
  • /bin/bash
  • 同时间的每个人登录都是执行/bin/bash对吧!
  • 每个人获取的权限就是不同

  • 当我们登录并执行bash时,系统已给我们一个PID

    • 根据登录者的UID/GID(/etc/passwd)而来
  • /bin/bash是一个程序

  • dmtsai登录后,它获取一个PID为2234的进程,这个进程的User/Group都是dmsa

  • 当这个进程执行其他作业时,如touch时,

    • 那由这个进程衍生出来的其他进程在一般也会沿用这个进程的相关权限

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

子进程和父进程


  • 登录系统后,会获取一个bash的shell,然后用这个bash提供的接口去执行另一个命令
  • usr/bin/passwd或touch等,那些另外执行的命令也会被触发成为PID
  • 那个后来执行命令所产生的PID就是【子进程,而在我们原本的bash环境下,就称为【父进程
  • 用第10章Bash谈到 export所用的示意图

  • 图16.1.3来看,连续执行两个bash后
  • 第二个bash的父进程就是前一个bash
  • 每个进程都有一个PID,
    • 某个进程的父进程(PPID)
  • 第10章的export内容也探讨过环境变量的继承
    • 子进程可以获取父进程的环境变量

  • 明明我将有问题的进程关了,过一阵它又自动产生了?
    • 且新产生的那个进程的PID与原先的还不一样
  • 如果不是crontab计划任务的影响,肯定有一个父进程存在,所以你杀掉子进程后,父进程就会主动再生成一个
  • 找出那个父进程,然后将它删除就可

fork and exec:程序调用的流程


  • Linux的程序调用通常称fok-and-exec的流程1
  • 进程都会借由父进程以复制(fork)方式产生一个一模样子进程
  • 被复制出来的子进程再以exec执行实际要执行的进程,最终就成为一个子进程


  • (1)系统先以fork复制一个与父进程相同的临时进程,与父进程唯一的差别PID不同
  • 这个临时进程还会多一个PPID就是父进程的进程标识符
  • (2)临时进程以exec的方式加载实际要执行的进程,
    • 新的进程名称为qqq,最终子进程的进程代码就变成qqq

系统或网络服务:常驻在内存的进程


  • 命令都很简单
    • ls显示文件
    • touch建立文件、
    • rm/mkdi/cp/mv等命令管理文件
    • chmod/ chown/ passwd等命令来管理权限等。
  • 该项命令被触发后所产生的PID很快就会终止。
  • 有没有一直在执行的进程呢?
    • 有且很多

  • 系统每分钟都扫描/etc/crontab及相关的配置文件来执行计划任务?
  • 这个计划任务谁负责?crontab这个进程
  • 将它在后台启动并一直持续运行,
    • 那就是常驻在内存当中的进程

  • 常驻在内存当中的进程通常负责一些系统所提供的功能以服务用户的各项任务,
    • 这些常驻进程就会被我们称为:服务(daemon)
  • 系统的服务非常多,
    • 分成系统本身所需要的服务(刚提到的crond、atd及rsyslogd等)
    • 负责网络连接的服务(apache、 named、 postfix、vsftpd等)
  • 网络服务有趣地方
    • 这些进程被执行后,它会启动一个可负责网络监听的端口(port),
    • 以提供外部客户端( client)的连接请求

在这里插入图片描述

16.2.2 job control的管理


  • bash只能管理自己任务
    • 不能管理其他bash的任务
  • 即使root也不能
    • 将别人bash下的job拿来执行
  • 后台里面的任务状态又可以分为
    • 【暂停(stop)与【运行(running)

直接将命令丢到后合中【执行】的&


  • 只有一个bash
  • 想同时执行多个任务,可将某些任务直接丢到后台环境
    • 让我们可以继续操作前台的任务
  • 用【&】
  • 将/etc/备份成为/tmp/etc.tar.gz且不想等

在这里插入图片描述

  • 输入一个命令,在该命令的最后加&
    • 代表将该命令丢到后合
    • 此时bash会给予这个命令一个【job number),就是[1]
    • 14432则是该命令所触发的【PID】
  • 丢到后台中的任务什么时候完成?完成的时候会显示什么?
  • 输入几个命令后,突然出现
    [1]+ Done
    tar -zpcf /tmp/etc. tar. gz /etc
  • 代表[1]已完成,该任务的命令则是接在后面的那一串命令行
  • 这样的情况最大的好处是:不怕被[cr+c中断
  • 将任务丢到后台当中要特别注意数据的流向,包括上面的信息就出现错误,导致我的前台被影响
  • 虽然只要按Enter]就会出现提示字符,
    • 如果将刚刚那个命令改成:

在这里插入图片描述

  • 在后合当中执行的命令,如果有stdout及stderr时,它的数据依旧是输出到屏幕
  • 所以无法看到提示字符,也就无法完好地掌握前合任务。
  • 同时由于是后合任务的tar,此时你怎么按下[ctrl+c也无法停止屏幕被搞得花绿
  • 最佳就是利用数据流重定向将输出数据传送至某文件

在这里插入图片描述

在这里插入图片描述


推荐阅读
  • CentOS 7 中 iptables 过滤表实例与 NAT 表应用详解
    在 CentOS 7 系统中,iptables 的过滤表和 NAT 表具有重要的应用价值。本文通过具体实例详细介绍了如何配置 iptables 的过滤表,包括编写脚本文件 `/usr/local/sbin/iptables.sh`,并使用 `iptables -F` 清空现有规则。此外,还深入探讨了 NAT 表的配置方法,帮助读者更好地理解和应用这些网络防火墙技术。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 在本文中,我们将探讨如何在Docker环境中高效地管理和利用数据库。首先,需要安装Docker Desktop以确保本地环境准备就绪。接下来,可以从Docker Hub中选择合适的数据库镜像,并通过简单的命令将其拉取到本地。此外,我们还将介绍如何配置和优化这些数据库容器,以实现最佳性能和安全性。 ... [详细]
  • 深入解析Android 4.4中的Fence机制及其应用
    在Android 4.4中,Fence机制是处理缓冲区交换和同步问题的关键技术。该机制广泛应用于生产者-消费者模式中,确保了不同组件之间高效、安全的数据传输。通过深入解析Fence机制的工作原理和应用场景,本文探讨了其在系统性能优化和资源管理中的重要作用。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ... [详细]
  • 本文详细介绍了如何在Linux系统(以CentOS为例)上彻底卸载Zimbra邮件系统,包括停止服务、删除文件和用户等步骤。 ... [详细]
author-avatar
手机用户2502910855
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有