文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Centos7 中 Systemd 的 Unit 文件配置说明

2024-12-03 04:52

关注

下面列出了三种类型的单元配置文件所在路径:

默认单元配置文件,当安装新软件包时,在安装过程中,单元配置文件会在/usr/lib/systemd/system目录中生成。

运行时单元配置文件,分别在units启动和停止时,会自动生成和删除。

系统特定的配置文件包含定制的单元配置。通过这些配置文件,用户可以覆盖units的默认行为。

当我们对系统服务和程序的状态进行任何更改时,例如:start, stop, enable, 和disable时,systemd读取并执行其单元配置文件。按照以下顺序检查单元配置文件。

系统特定的单元配置文件、运行时单元配置文件、默认单元配置文件。

例如,如果一个units配置文件在着三个路径下面都存在,则仅使用 系统特定的配置文件 - /etc/systemd/system。

Unit配置文件书写格式

一个单元配置文件包含控制该单元的所有必需信息,例如;启动Units文件的路径,在Units之前和之后需要启动的 service/units 的名称,文档、手册的位置,依赖项信息,冲突信息等。

Unit配置文件中的信息通常分为三部分。[Unit],[Type], [Install]。

下面寻找一个Unit配置文件来解释:

  1. [root@localhost ~]# cat /usr/lib/systemd/system/sshd.service  
  2. [Unit] 
  3. Description=OpenSSH server daemon 
  4. Documentation=man:sshd(8) man:sshd_config(5) 
  5. After=network.target sshd-keygen.target 
  6. Wants=sshd-keygen.target 
  7.  
  8. [Service] 
  9. Type=notify 
  10. EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config 
  11. EnvironmentFile=-/etc/sysconfig/sshd 
  12. ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY 
  13. ExecReload=/bin/kill -HUP $MAINPID 
  14. KillMode=process 
  15. Restart=on-failure 
  16. RestartSec=42s 
  17.  
  18. [Install] 
  19. WantedBy=multi-user.target 

Unit部分

该部分通常包含 描述、文档、与其他程序依赖的设置、包括在什么服务 之前 或者 之后 启动该Units的设置等。

Description: 该语句提供简要的描述。可以在systemctl list-units或者systemctl status [Units]时看到描述。

Documentation: 该语句提供手册(帮助文档)页面的位置以及访问手册页面的命令。

After: 该语句列出了在该单元之后应激活的单元。仅仅是规范服务启动的顺序,并没有强制要求启动。

Before: 该语句列出了在该单元之前应激活的单元。仅仅是规范服务启动的顺序,并没有强制要求启动。

Wants: 定义该单元启动之后还需要启动哪些unit。

Requires: 明确了定义该单元需要在哪个单元启动之前才能启动,如果前面的unit没有启动,那么该unit也不会被启动。

Conflicts: 该语句列出了在启动该单元之前必须停止的单元/服务。

一个单元的After/Before语句定义了该单元应该启动的顺序。一个单元的want/Requires语句定义了该单元的依赖关系。

Type部分

该部分表示Unit的类型。类型有[Service],[Socket],[Timer],[Mount],[Path]等类型,本文中使用的是sshd.service当例子,所以这边就使用[Service]类型来介绍。

下面列举常用语句:

Type : 表示启动的类型,有以下几种类型:simple为默认值、forking、oneshot等类型。

EnvironmentFile: 可以有多个该语句、后面跟配置文件。

ExecStart: 后面接启动的语句

ExecStop: 后面接停止服务的语句

ExecReload: 后面接重启服务的语句

KillMode: 该语句如果是process,当终止进程时,它会终止主程序。如果时none时,则不会关闭程序。

Install部分

该部分时将此Unit安装到哪一个target中去。常用会安装在multi-user.target

WantedBy: 自动启动该Unit的Target名称。例如,如果在此语句中看到multi-user.target,则意味着当系统进入“multi-user.target”运行级别时,此Unit将自动启动。

可以看到,当执行systemctl enable sshd.service时,会将sshd.service从/usr/lib/systemd/system目录中创建超链接到/etc/systemd/system/multi-user.target.wants下面。

本文转载自微信公众号「Linux就该这么学」,可以通过以下二维码关注。转载本文请联系Linux就该这么学公众号。

 

图片

 

来源:Linux就该这么学内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯