程序管理与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 :做一个更为完整的输出。
人怂胆子小,手拿大刀跑。