Linux再学--进程管理-ps top

进程的概念与查看

运行在系统中的程序,同时进程可以包含子进程;进程在程序开始运行到结束的整个生命周期都是可以管理的;

  • 程序的开始一般是从mian函数开始。
  • 程序的终止分为正常终止和异常终止;
    *正常终止包含 从main返回 调用exit等
    • 异常分为abort命令及接收到信号等;例如:系统资源不足,无法为程序分配内存,导致程序终止运行;

2.进程的控制命令

进程一般都是树形的,都有单独的编号PID;
查看命令一般有 ps pstree top命令;

2.1 ps

  • ps 后无参数 查看当前终端下能够查看的进程状态, 在Ubuntu上执行效果如下:
    在这里插入图片描述
    第一行一般是PID就是进程的唯一标识号,进程的名称是可以重复的,
  • ps -e 查看其他进程,这个能查看很多的进程 ,一般常用ps -ef,执行后部分截图如下: 在这里插入图片描述
    这个命令可以查看进程启动的用户身份UID(有效身份ID),PPID 父进程,所有进程的启动都要从父进程启动;如果要查看轻量级进程(线程)执行ps -eLf就会多一个LWP的项目;
  • ps aux 以用户为主的进程状态的详细信息
    * -A :所有的进程均显示出来,与 -e 具有同样的效用;
    * -a : 显示现行终端机下的所有进程,包括其他用户的进程;
    * -u :以用户为主的进程状态 ;
    * x :通常与 a 这个参数一起使用,可列出较完整信息。

2.2 pstree

pstree 可以查看到进程和进程下所有的子进程以树的形式显示,如图:

在这里插入图片描述
后面的more是进行分页显示;

2.3 top

可以动态去查看进程的信息,可以不用带任何参数;效果如下:
在这里插入图片描述

第一行开始是指系统的开机时间 ,users 当前登录的用户 ,接下来是指系统的繁忙程度,1表示繁忙;
tasks 表示进程的总数及其各个运行的状态;即:一个运行,65个休眠,1个停止
下一行的 表示cpu的状态 ,(s)表示平均值,(这时候按数字1就可以查看每一个cpu的状态)wa表示io的繁忙程度;
接下来的表信息,默认每次间隔3s刷新一次;

3. 进程的信号

给一个文件执行权限:

// u 当前用户下 x 可执行权限
 chmod u+x file.sh
 

在这里插入图片描述

调整优先级:

nice 范围在-20到19 ,值越小级别越高,抢占资源就越多;
renice 重新设置优先级
指定进程级别启动效果如下:
在这里插入图片描述
为了能查看进程的信息我们需要新打开一个终端执行:top -p 24562,效果如图:
在这里插入图片描述
接下来尝试重新调整优先级,执行renice -n 19 24562后效果如下:
在这里插入图片描述
可以看到级别从16调整到了19;

进程前后台的切换

如果需要在后台执行命令那么只需要加上&(shirt+7):

nice -n 16 ./test.sh &

执行效果如下:
在这里插入图片描述

执行top命令可以查看程序是不是在运行中:
在这里插入图片描述

  • 返回前台 就需要 jobs命令,执行后效果:
    在这里插入图片描述
    可以看到这里列出了执行中的命令,要切换那个到前台只需执行fg 序号,fg是forground的缩写:
    在这里插入图片描述
    可以看到程序切换到前台执行了;

信号是进程间通讯的一种方式,一般常用是终端输入一个中断命令,通过信号机制去停止一个程序的执行;
常用命令:kill -9 pid;
-9 表示停止进程不受任何阻断的影响

4. 守护进程和系统日志

有时候我们需要程序开机就启动,而不需要我们手动去启动,那么就需要守护进程:nohupdaemon
nohup表示即使关掉终端程序依然可以运行;执行效果如下:
在这里插入图片描述

可以看到这个命令还有一个功能就是:忽略输入并把输出追加到nohup.out文件中;
这时候执行exit命令退出终端,我们执行ps命令查看一下是不是在后台运行:
在这里插入图片描述
可以看到程序在运行中

screen环境下执行后的命令即使断开连接后也能运行,执行后重连远程服务后效果:
在这里插入图片描述
如果需要查看那些是在screen下执行的只需要加上-ls就可以查看:
可以
可以看到有一个进程在执行;

SELinux 简介

安全增加的Linux版本,以前的访问是依赖用户和文件去访问;有自主(DAC)和强制访问(MAC);注意大部分的服务的这个命令都是处于关闭状态;
可以使用getenforce命令查看,如果提示不错在使用`apt install selinux-utils安装一下;
在这里插入图片描述
安装完毕再执行命令后,可以看到是没有启用的;
如果对这个命令使用不熟练反而麻烦,所以很少使用;

猜你喜欢

转载自blog.csdn.net/lym594887256/article/details/124744657