程序管理与SElinux

一、程序:

1.在Linux中,触发任何一个事件是,系统都会将他定义为一个程序,并且给予这个程序一PID,同时依据启发这个程序的使用者与相关属性关系,给予这个PID一组有效的权限设定,从此以后,这个PID在系统上的动作,就与这个PID的权限有关了。 

2.系统只认识二进制文件,让系统工作时,也是需要启动一个binary file,这个binary file就是程序。

3.程序与进程

  • 程序:通常是binary program,放在存储媒体(硬盘,软盘,光盘等)中,以实体文件形式存在。
  • 进程:程序被触发后,执行者的权限和属性、程序的程序代码与所需的数据等都会被加载到内存中,操作系统给予这个内存内中的这部分内容一个标识符PID,进程可以说是一个正在运行的程序。

二、子父程序与多人登陆

1.linux的多人多任务环境

  • 多人登入系统,取得各自的shell,当都是bash时,每个人执行的都是/bin/bash,但是,每个人的权限不一样。当我们登入系统中并执行bash时,系统已经已经给了我们一个PID了,这个PID就是根据登入着的UID/GID得到的。(linux中有6个命令行窗口,以及一个图形窗口。)
  • 多任务:linux可以让CPU在各个工作间进行切换,每个工作仅占去CPU的几个指令次数,目前CPU速度可达几个GHz,代表CPU每秒钟可以运作10的9次方次指令。

2.子程序和父程序:

  • 使用”ps -l“命令查看PID和PPID,其中PPID就是父进程的PID
  • 父进程与子进程的复杂点就是程序互相之间的呼叫。在linux中通常称为fork-and-exec的流程,程序会通过父程序以复制(fork)的方式产生一个一模一样的子程序,然后被复制出来的子程序在一exec的方式来执行实际要进行的程序,最终就成为一个子程序的存在。

三、工作管理

1.常用命令

  • &符号,在输完某个命令后,在结尾加上它就代表将这个命令在后台里运行。这时bash会给这个命令一个工作号码(job number)。(当命令执行完成后会自动跳出来提醒下。[job number]+)
  • 查看后台的工作状态:jobs命令
    • -l :除了列出job number与指令外,同事列出PID号码。
    • -r :仅列出正在后台run的工作
    • -s:仅列出正在后台中暂停的工作。
  • fg %num   将后台中工作号为num的任务扔到前台中运行
  • bg %num 将后台中暂停的命令变成在后台中继续运行
  • kill 
    • -1 :重新获取一次参数的配置文件(类似于reload)
    • -9 :立刻强制删除一个工作。
    • -15:以正常的程序方式终止一项工作。
    • *****    -L(也可以是小写) 打印出kill能使用的数字有哪些

四、程序管理

查询系统上正在运行中的程序,可以用静态的ps,动态的top,还能以pstree来查询程序书之间的关系

1.常见命令

  • ps命令
    • -A :所有癿 process 均显示出来,不 -e 具有同样的效用
    • -a :与 terminal (终端)无关的所有 process ;
    • -u :有敁使用者 (effective user) 相关癿 process ;
    • x :通常不 a 这个参数一起使用,可列出较完整信息。
      输出格式规划:
      l :较长、较详绅的将该 PID 的信息列出;
      j :工作的格式 (jobs format)
      -f :做一个更为完整的输出。  
原文地址:https://www.cnblogs.com/sjxbg/p/5548180.html