Linux学习(四)服务与进程 您所在的位置:网站首页 linux进入tty1与tty2 Linux学习(四)服务与进程

Linux学习(四)服务与进程

#Linux学习(四)服务与进程| 来源: 网络整理| 查看: 265

一、Linux 系统启动与快捷键设置 1.Linux 系统启动过程

系统的 引导 和 初始化 是操作系统实现控制的第一步。

Linux系统的初始化主要包括 内核 和 init程序 两部分:

内核主要完成对系统硬件的检测和初始化工作。init程序主要完成对系统的各项配置。

Linux启动流程图(画的有点丑将就下):

在这里插入图片描述

下面介绍下各部分:

(1) BIOS(Basic Input/Output System):基本输入输出系统,存储于主板的ROM芯片上

BIOS主要功能是存储了磁盘的启动顺序,BIOS会按照顺序查找第一个磁盘头的MBR信息。

(2)MBR(Master Boot Record):主引导记录,存于磁盘头部,分别存储了BootLoader程序,分区表信息 以及用于有效性检查的工具。

(3)GRUB(Grand Unified BootLoader):多系统启动程序,用于查找并加载Kernel,其执行过程分为三步: == stage1==:查找并加载stage2(BootLoader程序)。 stage1.5:但若系统未启动,MBR找不到文件系统(stage2所存放位置),就得先引导位于文件系统中的stage2 。 stage2:GRUB程序会根据/boot/grub/grub.conf文件查找Kernel的信息,然后开始加载Kernel程序,当Kernel程序被检测并在加载到内存中,GRUB就将控制权交接给了Kernel程序。

Note:此时/boot 还未被挂载,GRUB直接识别grub所在磁盘的文件系统,应该是/grub/grub.conf

(4)Kernel :内核,操作系统核心,软硬件的交互通道。 initrd(Initial RAM Disk):stage2时拷贝到内存上 ,是一个临时的根文件系统(rootfs),该文件装载了必要的驱动模块,直到真正的rootfs被挂载后,initrd将从内存中移除。

(5)init:OS初始化操作,实际上是根据/etc/inittab(定义了系统默认运行级别)设定的动作进行脚本的执行,第一个被执行的脚本为/etc/rc.d/rc.sysinit,这个是真正的OS初始化脚本,简单讲下这个脚本的任务(可以去看看实际脚本,看看都做了什么):

激活udev和selinux;根据/etc/sysctl.conf文件,来设定内核参数;设定系统时钟;装载硬盘映射;启用交换分区;设置主机名;根文件系统检测,并以读写方式重新挂载根文件系统;激活RAID和LVM设备;启用磁盘配额;根据/etc/fstab,检查并挂载其他文件系统;清理过期的锁和PID文件

执行完后,根据配置的启动级别,执行对应目录底下的脚本,最后执行/etc/rc.d/rc.local这个脚本,至此,系统启动完成。

2.关于系统运行级别

CentOS Linux7中,每个运行级别都有属于自己的target文件,都是链接文件,运行级别的设置由/etc/system/system/default.target文件控制。

在运行级别对应的目录中,所有文件的命名都是Knn… 和 Snn… S开头的文件是系统启动时调用的服务进程,K相对的就是终止时balabla.

系统图形界面的运行级别是5,文本界面是3

使用Systemctl set-default name.target来修改默认的运行级别。

//将系统的默认运行级别修改为图形界面 system set-default graphical.target reboot

如何关闭Ctrl + Alt + Del 重启系统的组合件呢?

vim编辑这个文件,全部注释/usr/lib/systemd/system/ctrl-alt-del.target 文件的内容,保存退出,执行init q重新加载配置文件。

二、使用systemctl管理NFS服务 1.什么是服务?

简单来说就是执行某系统功能的程序来支持其他更加底层的程序。例如:打印服务,HTTP服务,FTP服务。一般的服务管理有启动、查询、停止等操作。

Linux系统的服务分为独立运行的服务和受xinetd管理的服务两大类。

独立运行的服务一般与运行级别有关,在系统启动后就直接运行和管理; xinetd本身就是一个独立运行的服务,负责管理一些不常用的服务,其启动和停止都由xinetd控制。

在管理服务时,Linux中的每个服务都由相应的启动脚本,用于设置启动、停止、重启和查询服务等功能。所有服务的脚本都放在 /etc/rc.d/init.d 目录中,可用less命令查看。

2.那么什么是NFS服务?

NFS (Network FileSystem ) ,主要功能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此分享个别的档案 (share files)。可以简单看做是一个文件服务器 (file server) 。

NFS 服务器可以让你的 PC 来将网络远程的 NFS 服务器分享的目录,挂载到本地端的机器当中, 在本地端的机器看起来,那个远程主机的目录就好像是自己的一个磁盘分区槽一样 (partition)

3.systemctl命令

Linux中对服务的管理可以通过systemctl命令来实现。

(1)服务的启动与停止

systemctl start(启动)/stop(停止)/status(查看运行)/restart(重启)/reload(重载) XXX.service

例如:管理network服务 在这里插入图片描述 注:服务一般以 “ .service ” 结尾。

(2)设置服务自启动

ntsysv --back --level

在这里插入图片描述 或者systemctl命令也可以设置

例如:查看network服务的开机自启动状态,并设置为开机不启动。 在这里插入图片描述

(3)查看所有的服务

systemctl //列出所有的系统服务 systemctl list-units //列出所有启动unit systemctl list-unit-files //列出所有启动文件 systemctl list-units -type=service -all //列出所有service类型的unit systemctl list-units -type=service -all grep cpu //列出CPU电源管理机制的服务 systemctl list-units -type=target -all //列出所有目标单元target 三、进程的延迟与周期调度 1. 进程是什么?

首先来看一下程序是怎么定义的:程序是为了完成某种任务二设计的软件,包含可执行的代码和数据,而进程是指开始执行但是还没有结束的程序的实例。

一个运行的程序可能有多个进程。 进程一般分为交互进程、批处理进程和守护进程3类。

交互进程:shell下通过执行程序产生的进程,可在前台和后台运行。 批处理进程:进程的序列,执行时不需要人机交互。 守护进程:一直运行,一般在后台运行。

2.进程调度

Linux下的进程调度一般用 at 和 crontab .

(1)延迟性调度:at

at 命令在指定时刻执行指定的命令,实际是一组命令的集合。使用前需要确保atd服务是开启的,使用 #systemctl start atd.service 开启,并用 #systemctl enable atd.service 确认一下。atq命令可用于查询已设定的命令序列,atrm命令用于删除已设定的命令序列。

//基本格式就是: at time at> 动作 at>ctrl +d 其他at的命令

at -l #查看任务的编号(任务已完成则没有显示)

at -c 任务编号 #查看这个任务的内容

at -r 任务编号 #删掉这个任务

下面就来举个栗子啦~

//两天后的17:30执行文件data中指定的作业 # at -f data 17:30+2 days //一分钟后再tty1中提示"hello!" # at now+1 minutes at>echo"hello!">/dev/tty1 at>ctrl+D //明天凌晨2点将正在登陆的用户写入/tmp/users.log # at 2:00 tomorrow at> w>/tmp/users.log //一分钟后在主目录中建立目录at # at now+1 minutes at>mkdir at at>ctrl+D

(2)周期性调度:crontab

crontab命令可以在指定的日期和时间周期执行。

//基本格式 #crontab minute hour day month dayofweek command ctrl+D

举例:

//每周四早上8:30,提醒用户10:00开会 # crontab 30 8 * * 4 echo "meeting at 10:00 am">/dev/tty1 ctrl+D

可以#crontab -e进入vim修改调度任务。

3.进程查看

ps是最基本的进程查看命令。可以确定哪些进程在运行、挂起、运行了多久、在使用的资源、进程相对优先级及进程的标识号(PID)。

ps aux //查看终端上所有用户进程的所有信息 ps aux|less //分页查看 ps aux|grep glenda //查看用户glenda所有进程信息

pstree还可以以树状结构显示系统进程的继承关系。

4.进程终止

终止前台运行的进程一般用:Ctrl + C; 终止后台进程,必须用 kill、killall 之类的进程终止命令。

(1)kill 一般和ps、grep结合使用

ps -A|grep sshd //查询sshd服务进程的pid是1097 kill 1097

对于僵尸进程,用信号代码-9强行终止。

(2)killall:通过进程的名字,直接终止。

killall sshd //终止所有sshd进程 5.作业控制

正在执行的一个或多个相关进程称为一个作业,作业控制是指控制当前正在运行的进程的行为,用户可以同时运行多个作业。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有