管理systemd

管理systemd

一、systemd介绍

回顾一下centos的启动流程

 POST –> Boot Sequence –> Bootloader –> kernel +

initramfs(initrd) –> rootfs –> /sbin/init

centos7中系统启动的第一个意义上的进程就是init,只不过在centos7上变成了Systemd这个守护进程

 Systemd :系统启动和服务器守护进程管理器,负责在系统

启动或运行时,激活系统资源,服务器进程和其它进程

配置文件:

/usr/lib/systemd/system:每个服务最主要的启动脚本

/usr/systemd/system:系统执行过程中所产生的服务脚本,比上面目录优先运行。

/etc/systemd/systemd:管理员建立的执行脚本,类似于/ 于/etc/rc.d/rcN.d/Sxx类的功能,比上面目录优先运行

二、类型

  Systemctl –t help  查看unit 类型

 Service unit:  文件扩展名为.service,  用于定义系统服务

 Target unit:  文件扩展名为.target ,用于模拟实现“运行级

 Device unit: .device,  用于定义内核识别的设备

 Mount unit: .mount,  定义文件系统挂载点

 Socket unit: .socket,  用于标识进程间通信用的socket 文件,也可在系统启动时,延迟启动服务,实现按需启动

特性:

关键特性:

基于socket 的激活机制:socket 与服务程序分离

基于d-bus 的激活机制:

基于device 的激活机制:

基于path 的激活机制:

系统快照:保存各unit 的当前状态信息于持久存储设备中

向后兼容sysv init 脚本

  不兼容:

systemctl 命令固定不变,不可扩展

非由systemd 启动的服务,systemctl 无法与之通信和控制

三、管理服务

  管理系统服务:

CentOS 7: service unit

注意:能兼容早期的服务脚本

  命令:systemctl COMMAND name.service

  启动:service name start ==> systemctl start

name.service

  停止:service name stop ==> systemctl stop

name.service

  重启:service name restart ==> systemctl restart

name.service

  状态:service name status ==> systemctl status

name.servic

  条件式重启:已启动才重启,否则不做操作

service name condrestart ==> systemctl try-

restart name.service

  重载或重启服务:先加载,再启动

systemctl reload-or-restart name.service

  重载或条件式重启服务:

systemctl reload-or-try-restart name.service

  禁止自动和手动启动:

systemctl mask name.service

  取消禁止:

systemctl unmask name.service

四、centos7的引导顺序

  1)UEFi 或BIOS 初始化,运行POST 开机自检

2)选择启动设备

  (3) 引导装载程序, centos7 是grub2

  (4) 加载装载程序的配置文件:/etc/grub.d/

5)/etc/default/grub /boot/grub2/grub.cfg

  (6)加载initramfs 驱动模块

  (7)加载内核选项

  (8)内核初始化,centos7 使用systemd 代替init

  (9)执行initrd.target 所有单元,包括挂载/etc/fstab

 (10)从initramfs 根文件系统切换到磁盘根目录

 11)systemd 执行默认target 配置,配置文件

/etc/systemd/default.target /etc/systemd/system/

 (12) systemd 执行sysinit.target 初始化系统及basic.target 准备操作系统

 (13)systemd 启动multi-user.target 下的本机与服务器服务

 (14)systemd 执行multi-user.target 下的/etc/rc.d/rc.local

 (15)Systemd 执行multi-user.target 下的getty.target 及登入服务

 (16) systemd 执行graphical

五、service unit文件

/etc/systemd/system :系统管理员和用户使用

/usr/lib/systemd/system :发行版打包者使用

   “ “#”  开头的行后面的内容会被认为是注释

  相关布尔值,1 、yes 、on 、true  都是开启,0 、no 、off、 false 都是关闭。

   时间单位默认是秒,所以要用毫秒(ms )分钟(m )等请显示说明。

   service unit file 文件通常由三部分组成:

• [Unit] :定义与Unit 类型无关的通用选项;用于提供unit 的描述信息、unit 行为及依赖关系等。

• [Service] :与特定类型相关的专用选项;此处为Service 类型

• [Install] :定义由“systemctl enable” 以及"systemctl disable“ 命令在实现服务启用或禁用时用到的一些选项

service unit 文件格式

 Unit 段的常用选项:

 Description :描述信息

 After :定义unit 的启动次序,表示当前unit 应该晚于哪些

unit 启动,其功能与Before 相反

 Requires :依赖到的其它units ,强依赖,被依赖的units 无法

激活时,当前unit 即无法激活

 Wants :依赖到的其它units,弱依赖

 Conflicts :定义units

 EnvironmentFile :环境配置文件

 ExecStart :指明启动unit 要运行命令或脚本的绝对路径

 ExecStartPre: : ExecStart 前运行

 ExecStartPost: : ExecStart 后运行

 ExecStop :指明停止unit 要运行的命令或脚本

 Restart :当设定Restart=1  时,则当次daemon 服务意外终

止后,会再次自动启动此服务。

服务Unit 文件示例:

vim /etc/systemd/system/bak.service

[Unit]

    Description=backup my etc

    Requires=atd.service

[Service]

    Type=simple

    ExecStart=/bin/bash -c "echo /testdir/bak.sh|at now"

[Install]

   WantedBy=multi-user.target

   systemctl daemon-reload

    systemctl start bak

作业

1、为编译安装的httpd服务,实现service unit文件

添加了service unit之后

服务器没有启动,出现了如下的报错

 图片1.png

解决办法:

 

1)可以设定httpd.conf文件中的 ServerName,如下:ServerName localhost:80                        

 

(2) /etc/hosts 中填入自己的主机名称,如下:127.0.0.1 localhost  (用户名称)

systemctl  daemon-reload

vsystemctl  start  http

2、破解centos7 口令

答:

  1) 启动时任意键暂停启动

v(2)按 按e 键进入编辑模式

v(3)将光标移动linux16 开始的行,添加内核参数rd.break

v(4)按 按ctrl-x 启动

v(5) mount –o remount,rw /sysroot

v(6)chroot /sysroot

v(7) passwd root

v(8)touch /.autorelabel

3、修改默认的启动内核

答:1)vim /etc/default/grub

修改GRUB_DEFAULT=saved—-》GRUB_DEFAULT=0

   2)grub2-mkconfig -o /boot/grub2/grub.cfg

4、启动时临时禁用SELinux

 

5、启动时进入emergency模式

   启动时任意键暂停启动,按e 键进入编辑模式;将光标移动linux16 开始的行,添加内核参数systemd.unit=rescue.target 是一个设置基本系统和救援 shell 的特殊 target unit (与运行级1相似);systemd.unit=emergency.target 与传递保留参数的 init=/bin/sh 给系统使系统从该状态启动相似。

 

 

原创文章,作者:178babyhanggege,如若转载,请注明出处:http://www.178linux.com/48426

(0)
178babyhanggege178babyhanggege
上一篇 2016-09-22
下一篇 2016-09-22

相关推荐

  • linux文件管理类命令学习总结练习

    1、常用文件管理类命令:cp, mv, rm   cp: copy命令       单元复制 cp [OPTION]… [-T] SOURCE DEST                     DEST不存在…

    Linux干货 2016-11-06
  • 进程管理工具:ps,top,htop,dstat

    进程列表查看,系统资源使用情况查看,比如CPU占用情况,内存使用情况,网络IO,硬盘IO等等。本文介绍的几款工具帮您实现。 进程是指运行中的程序的一个副本,进程的有关信息映射在/proc/#下,ps等工具通过加工/proc/下文件而显示出进程列表。 linux内核属于抢占式多任务式,内核将CPU处理时间按时间片分配给各个进程,这里有一个优先级的问题,优先级越…

    Linux干货 2016-09-22
  • NoSQL之MongoDB

    分布式系统理论 1、 CAP: 分布式系统只能满足其中两个  Consistency :一致性 Availibility:可用性 Partitions Tolerance :分区容错性 C,A : SQL 传统的数据库。 两段机制。 C,P :悲观枷锁机制,分布式加锁机制。加锁机制与SQL不太一样。 这里的C为最终一致性。 放弃C后的特例,既可以保证可用性,…

    2018-01-09
  • 编辑器之神VS神之编辑器

      在linux下有两款非常棒的处理器,它们的功能异常的强大,在普通使用者手中,我们或许仅仅把它们当做文本处理器,但在官方文档中,它们不仅仅被定义为开发工具。正如在windows下,office在我们手中仅仅是文本,表格,PPT等文件的处理工具,而在大神手中,Excel是可以用来作画的!PowerPoint 还可以用来播放视频!  &nb…

    Linux干货 2017-08-05
  • N22-第一周作业

    1、描述计算机的组成及功能      计算机系统由硬件系统和软件系统组成。硬件系统(Hardware system)是计算机完成计算工作  的物质基础。软件系统(Software system):是在计算机硬件设备上运行的各种程序,是介于用户  和硬件系统之间的界面。1.1 计算机的硬件系…

    Linux干货 2016-08-22
  • 马哥教育网络班21期-第六周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1.复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加# [root@junfeng ~]# cp /etc/rc.d/rc.sysinit /tmp [root@junfeng&nbs…

    Linux干货 2016-08-15