引导过程+进程和进化任务管理+定时任务

本文详细介绍了Linux系统的开机自检过程,包括BIOS检测、MBR引导、grub菜单选择、内核加载和systemd的进程及服务管理,同时涵盖了定时任务的设置和管理。

引导过程:Linux系统的开机过程

  1.         开机自检(BIOS):Linux主机开机后,根据主板BIOS中的设置,对CPU内存,显卡,键盘等设备进行初步检测,检测内容为查找这些设备是否存在。
  2. 检测成功后,根据预设的启动顺序进行系统控制权的移交,一般情况下移交到本机的硬盘中。
    1. 想要使用到U盘启动或光驱启动时,需要在BIOS中更改设置。
  3. 找到硬盘后,对硬盘进行初步检测,检测没问题,移交系统的控制权到硬盘。
  4. 硬盘中有MBR引导,MBR引导:磁盘分区表,记录了系统中磁盘分区的索引,从而找到磁盘的分区位置。Linux系统会找到第一个硬盘的第一个扇区,识别系统的版本和操作系统的个数。接着根据引导信息将控制权移交给启动菜单(grub菜单)。
  5. grub菜单:统一启动加载器,是一个使用最为广泛的多系统引导器程序。会显示出当前有几个系统可以供用户选择,根据用户的选择,再进行系统控制权的移交,移交到选择系统的内核文件。centos7使用的grub2在/boot/grub2/grub.cfg中。
  6. 系统控制权移交到内核后,开始加载linux内核。内核在/boot/目录下。
    1. 内核文件是一个预先编译好的二进制可执行文件,介于各种硬件资源和系统程序之间,它的作用是系统资源的分配与调度。调度完之后,会将需要用到的资源和程序加载到内存当中
  7. 内核加载完毕后,最后一次系统控制权移交,到达systemd(centos7的初始化方式,之前是init初始化)。
    1. systemd开始进程初始化,加载内存当中的程序,以并行的方式加载运行。最终等待用户登录。
    2. systemd现在是centos7初始化方式的原因:可以并行执行;init只能串行执行,速度慢。

systemd的管理方式

systemd是管理linux系统的进程和系统服务的管理器

  • 支持并行
  • 可以设置开机自启,自动启动服务
  • 可以在进程运行期间动态地调整进程参数和资源限制
  • 解决启动程序的依赖关系,对服务的状态进行管理:
    • start 开启
    • stop 关闭
    • restart 重启
    • status 查看进程状态
    • enable 开机自启
    • disable 关闭开机自启
    • reload 重新加载(进程的配置文件)
  • 控制单元,systemd按照单元对进程进行控制,常见单元类型:
    • service 对进程进行控制 #主要使用的控制方式
    • socket 通信套接字,提供端口号服务,对进程间的端口号进行控制
    • 控制命令:
      • systemctl stop/start/restart 等等
      • 对于进程控制的日志都在/var/log/messages中,用 tail -f 动态查看
  • 系统的运行级别:
    • 0 关机

    • 1 单用户模式,一般用于维护时使用,急救模式

    • 2-4 字符串界面

    • 5 图形化界面

    • 6 重启

        工作中一般只有字符串界面,init 后面跟上数字可以切换系统的运行级别;runlevel 可以查询系统的运行级别。比如说这样:

        N表示之前没有进行过系统运行级别的切换,如果是数字,则表示之前的运行级别是该数字表示的级别。

进程和计划任务管理

进程:正在运行的代码就是程序

服务:进程提供的特定功能

程序:是一串没有运行的代码

        

进程和进程的关系:

父进程和子进程:systemd进程是linux的第一个进程,也是所有linux进程的父进程

父进程先启动,再启动子进程,父进程给子进程分配资源,让子进程能够正常运行

子进程先结束,父进程回收完子进程的资源之后,父进程才会结束

父进程如果先结束,子进程就会成为僵尸进程。

查看进程的命令:ps -aux

a 显示终端上所有的进程,包括其他用户的进程

u 列出进程的用户

x 显示进程的详细信息

user 进程所属的用户

pid 进程的身份标识,id号,唯一。

%CPU 进程占用CPU的百分比

%MEM 进程占用物理内存的百分比

VSZ 进程使用的虚拟内存量,单位KB,虚拟内存是系统预设的用于缓解物理内存不足的压力的内存

RSS 进程占用物理内存的量,单位KB

TTY 启动进程的终端名,?表示系统自启,不是从终端启动

STAT 进程的状态

        S 可被唤醒的休眠状态

        R 进程正在运行

        D 一直处于休眠状态的进程

        T 停止状态,可能是在后台暂停,或者进程处于调试状态

        Z 僵尸进程

        s 该进程包含子进程

        < 该进程处理的优先级高

        N 该进程处理的优先级低

        l 进程有多个线程

                线程是进程功能的执行者

        + 表示该进程位于前台运行

START 进程触发启动的时间

TIME 进程实际使用CPU运行的时间

COMMAND 进程的启动命令

ps -elf:也是查看进程的方式,同样是静态查看

e 显示系统内的所有进程信息

l 详细展示进程信息

f 显示完整进程信息

详细内容为:

F:内核分配给进程的系统标记

S:STAT的简写,进程的状态

UID:进程所属的用户

PID:进程的ID号,唯一,不重复

PPID:前面pid号对应的父进程号

C:进程在当前的生命周期内的CPU利用率

PRI:进程的优先级,数字越大,优先级越低

NI:谦让值,决定优先级的大小(了解)

ADDR:进程在内存中的地址(了解)

SZ:假如进程被唤醒,需要交换空间的大致大小(了解)

WCHAN:如果该进程处于睡眠状态,则显示睡眠中的系统函数名(了解)

STIME:进程启动时的时间

TTY:启动该进程的终端,?代表系统自启

TIME:进程运行时累计使用CPU的时间

CMD:进程的启动命令

top:

12:10:02 是当前时间,42 min表示已经使用的时间,2 users表示当前有两个用户在使用

load average:0.00,0.01,0.05 分别是1分钟,5分钟,15分钟内的系统平均负载

        系统负载,单位时间内系统处理任务的平均数

Tasks:目前的进程总体情况

%CPU(s):按下数字1会显示所有CPU的信息,有几个CPU显示几个

        us:用户占用CPU的百分比

        sy:内核占用的百分比

        ni:优先级调度占用的百分比

        id:系统空闲CPU的百分比(★)

        wa:磁盘读写性能,用 iostat 命令可以专门查看磁盘的读写性能

        hi:一分钟内CPU的使用率

        si:五分钟内CPU的使用率

        st:十五分钟内CPU的使用率

SHR:共享内存使用大小。其他指标都和前面一样

c键可以按照CPU的大小进行排序,从大到小排


什么是僵尸进程?

        父进程先结束,还存在的子进程就会变成僵尸进程

        子进程结束的时候,父进程已经不存在,而且父进程也没有收回子进程的资源,那么子进程也会成为一个僵尸进程

        僵尸进程占用的系统资源很少,单个僵尸进程甚至可以忽略不计

        面试题:僵尸进程该怎么处理?

        答案是只有重启,僵尸进程无法用kill强制结束。因为kill只是传递信号,kill -9告诉进程你需要强制结束,立即结束,最终是由进程自己来终止运行的。

如何后台运行并查看程序?

        后台运行:在命令结尾处加一个 &

        查看命令:jobs 查看后台运行的所有进程,jobs -r则是仅查看正在运行的后台程序,jobs -p显示所有后台进程的id号


定时任务

        crontab命令

                -e 创建定时任务

                -u 指定定时任务的执行用户

                -l 查看所有的定时任务

        crontab -e -uroot 后进入一个编辑器,编辑器内需要按照以下格式书写:

                * * * * * 任务命令

                这五颗星的位置代表的是 分 时 日 月 周

                        分:0-59

                        时:0-23

                        日:1-31

                        月:1-12

                        周:0-7(0和7都是星期天)

                *:表示时间范围内的任意时间。

                ,:表示不连续的多个时间点,例如:1,3,5表示没1,3,5的时间单位

                - :表示连续的时间段

                / :表示时间频率,例如 */10 表示每10个时间单位

        例题:

        每天早上8点30执行任务:30 8 * * * 任务命令

        每月1号上午10点10分 20分 30 分 分别执行一次任务:10,20,30 10 1 * * 任务命令

        每月1号上午10点20分到40分都执行任务:20-40 10 1 * * 任务命令

        

        如何删除定时任务?

        crontab -r 最好不要使用。会删掉所有定时任务。

        crontab -e 进入编辑器后删除想要删除的定时任务。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值