手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

CentOS7进程管理systemd详解

[日期:2016-09-24] 来源:Linux社区  作者:Linux [字体: ]

第三章    systemd管理各个服务时,所依赖的unit文件的组织格式

1、servie unit文件的组织格式:

/etc/systemd/system/目录下的个unit文件和/usr/lib/systemd/system/下文件的关系:

当运行级别定义后,该级别下需要加载运行的服务等,会从/usr/lib/systemd/system/下的对应的unit以软链接方式映射/etc/systemd/system/目录下

如利用systemctl set-default runlevel5.target 修改默认运行级别后,原来/etc/systemd/system/default.target会重新链接到/usr/lib/systemd/system/graphical.target

service unit file文件的组成:

文件通常由三部分组成:

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

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

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

unit段的常用选项:

Description:描述信息,意义性描述

After:定义unit启动次序,表示当前unit应该晚于哪些unit启动,其功能与Before相反

Requies:依赖到的其他units;强依赖,被依赖的unit无法激活时,当前unit也无法激活

Wants:指明依赖到的其他units;弱依赖,被依赖的unit无法激活时,当前unit可以被激活

Conflicts:定义units间的冲突关系

service段的常用选项:

Type:用于定义ExecStart及相关参数的功能的unit进程启动类型;

类型:

simple:默认值,表示由ExecStart启动的进程为主进程

forking:表示由ExecStart启动的进程生成的其中一个子进程将成为主进程,启动完成后,父进程会退出

oneshot:功能类似于simple,但是在启动后续的units进程之前,主进程将会退出

notify:类似于simple,表示后续的units,仅在通过sdnotify函数发送通知以后,才能运行该命令

idle:

常见的是notify、forking、simple

EnvironmentFile :指明环境配置文件,为真正ExecStart执行之前提供环境配置或变量定义等文件

ExecStart:指明启动unit要运行的命令或脚本;ExecStartPre、ExecStartPost表示启动前或启动后要执行的命令或脚本

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

Restart:表示进程意外终止了,会自动重启

install段的常用选项:

Alias:当前unit的别名

RequiredBy:被那些units所依赖,强依赖

WantedBy:被那些units所依赖,弱依赖

注意:对于新创建的unit文件,或修改了的unit文件,必须要让systemd重新识别此配置文件,可利用:systemctl daemon-reload 进行重载

2、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 让systemd识别此服务配置文件
            systemctl start bak.service  启动此服务

第四章    systemd相关操作的实际效果展示

1、系统启动时,通过修改grub选项中的相关内核参数,实现启动时进入不同的模式(紧急救援模式、emergency模式)

在启动时,启动菜单项按e键,然后在linux16行后添加:(设置内核参数,只影响当次启动)

          systemd.unit=emergency.target  emergency模式

或  systemd.unit=rescure.target    紧急救援模式
            rescure.target 比emergency 支持更多的功能,例如日志等

blob.png 

blob.png

  2.png

3.png

111.png   

4.png

5.png

2、系统启动时破解root口令

启动时任意键暂停启动
        按e键进入编辑模式
        将光标移动linux16开始的行,添加内核参数rd.break
        按ctrl-x启动
        mount –o remount,rw /sysroot
        chroot /sysroot
        passwd root
        touch /.autorelabel

1.png

2.png

3.png

4.png

5.png

6.png

8.png

3、修复grub

主要配置文件 /boot/grub2/grub.cfg
        修复配置文件 grub2-mkconfig > /boot/grub2/grub.cfg
        修复grub
            grub2-install /dev/sda BIOS环境
            grub2-install UEFI环境

  blob.png

blob.png

2.png

3.png

 

破坏grub,然后进行修复

blob.png

blob.png

11.png

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-09/135464.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款