Linux学习日志_进程控制

-1acl访问控制列表

setfacl  -m u:用户:rw .mnt.file

getfcal /mnt/file
列表空了,功能可以用
+出现,表示权限列表未关闭
setfcal  -b //mnt/file
setfacl  -m u:student:rwx file 给file 增添一个student的user权限rwx
setfacl  -x u:student 删除一个student
--->  
Linux学习日志_进程控制
当出现+前面显示的不是普通权限
用getfacl查看普通权限
mask系统能够赋予最大的权限
umask系统预留权限
chmod更改系统能够赋予最大权限之后用setfacl -m修复
!当权限后有+时,不要用chmod更改权限

设置默认权限:getfacl -m d:u:student:rwx /pub/   原始已经有的目录权限不会进行更改,只更改新创建的目录,默认权限对于目录本身不生效


###############进程管理###############

1.什么是程序,什么是进程?

程序(program):通常为二进制程序放置在存储媒介中,以实体文件(物理文件)的形式存在。

进程(process):一个程序加载到内存中运行,内存中的数据即为进程。程序触发后,执行者的权限与属性/程序的程序码与所需数据等都会被载入到内存中,操作系统给予这个内存的单元一个识别码(PID),进程是一个正在运行中的程序。

  进程的状态:

R(Running):该程序正在运行中

S(Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒(Signal)

D:不可唤醒的睡眠状态,通常进程可能在等待I/O

T:(Stop)停止状态,可能是在工作控制(背景暂停)或除错(Traced)状态

Z(Zombie):僵尸状态,程序已经终止但却无法被移植到内存外

Linux学习日志_进程控制

进程分为后台运行的进程和shell当中运行的进程

2.进程的查看--静态的ps/ 动态的top/ 程序树pstree

PS   --->

            a   --->   关于当前环境的所有进程,不显示环境设置

            x| -A-->  系统的所有进程

            f   --->    显示进程从属关系

            e   --->  显示进程调用环境工具的详细信息

            l   --->  长列表显示进程的详细信息

            u   --->  显示进程的用户信息

           -a   --->  显示shell前台运行命令的进程,但不包含shell本身

eg:

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

      ps -lA  --->  查看所有系统的数据的详细信息

      ps ax -o %cpu,@men,pid --->分别显示进程中cpu,men,pid

Q:把CPU使用排名前五的进程PID抓取出来

      watch -n 1 'ps ax -o pid  --sort=<+|->%cpu | tail -n 5'

     +          --->   正序                    -            --->   倒序    

     %cpu   --->   cpu负载排序       %mem   --->   内存负载排序 

Linux学习日志_进程控制

3.   top:动态查看进程的变化

               --->相对于ps是选取一个时间点的进程状态,top则可以持续检测进程运行的状态。

[[email protected] ~]# top [-d 数字] | top [-dnp]

参数:

        -d   --->   后面可以接秒数表示更新频率,默认为5s

        -s   --->   修改进程刷新间隔时间

        -b   --->   以批次的方式执行top

        -n   --->   与 -b 搭配,表示需要进行几次top的输出结果

        -p   --->   指定某个PID来进行查看检测而已

top用法与ps基本相同

        -m   --->   根据内存占有率进行排序

        -c    --->   根据CPU占有率进行排序

        -u    --->   后面跟进程pid,和发起的信号(eg:9,15,20)用来给某个进程发起一信号

        -q    --->   推出进程查看界面

        -h    --->   显示top帮助

4.    pstree

[[email protected]~]# pstree [-A|U] [-up]

参数:

         -A   --->   各进程树之间的连接以ASCII字符来连接

         -U   --->   各进程树之间的连接以UTF-8码的字符来连接

         -P   --->   同时列出每个进程的PID

         -u   --->   同时列出每个进程的所属用户名称(UID)

5.   nice优先级设定

[[email protected]~]# renice -n -数字 comm  进程PID     --->   更改进程优先级,默认值为0

                             nice -n -5                                              --->   系统以别的优先级开启

Linux学习日志_进程控制

Linux学习日志_进程控制

监控命令

stat 中 sl    --->   l 表示该进程在内存中拥有锁定的空间

            Ss   --->   第二个 s 表示该进程为顶级进程

            S+  --->   +表示正在进行

            R+  --->  表示优先级高于S+

            S<l --->   表示优先级高

            SNl  --->  表示优先级低

            Sl    --->   表示优先级普通

6.   工作管理

概念:登陆bash,一边复制,一边查找,一边编译,一边进行vi程序编写,并且在同一个bash内实现的工作管理模式

[[email protected]~]# jobs [命令]   --->   job在后台运行

         ctrl + Z   --->   已经打开的进程打入后台,并且不运行

         fg             --->   将后台的job调回前台

         bg            --->   后台不运行的进程运行起来

         jobs          --->   查看当前bash的job

         jobs   -l     --->   查看当前bash的job,并显示该job的状态和PID

         jobs   -r    --->   仅列出正在后台运行的工作(run)

         jobs   -s    --->   仅列出正在后台暂停的工作(stop)

进程信号

         1   --->   在程序不启动的情况下重新加载配置

         2   --->   清除指定程序在内存中的数据

         3   --->   强行结束某个进程,不会被阻塞

         9   --->   强行结束某个进程,不会被阻塞

         15 --->   正常关闭某个进程,可能会被阻塞

         18 --->   继续运行暂停的进程

         19 --->   暂停指定进程,不会被阻塞

         20 --->   暂停指定进程,会被阻塞

7.   信号

发起信号   kill   -2   3158      --->   释放内存,<=>crtl   +   c

取消鼠标图形   ctrl   +   /   或   kill   -3

killall   -9   vim   批量的对名称为vim的进行删除

pkill   -9   -u   student   结束条件

当用student打开进程时,在root用pkll -9   -u   student杀死进程后,被杀死的进程为被阻塞,但由于非正常终端,出现错误,需要退出重新进入