linux 系统进程管理工具systemd详解(systemctl命令、创建自己的systemd服务)

Linux 系统在启动过程中,内核完成初始化以后,由内核第一个启动的程序便是 init 程序,路径为 /sbin/init(为一个软连接,链接到真实的 init 进程),其 PID 为1,它为系统里所有进程的“祖先”,Linux 中所有的进程都由 init 进程直接或间接进行创建并运行,init 进程以守护进程的方式存在,负责组织与运行系统的相关初始化工作,让系统进入定义好的运行模式,如命令行模式或图形界面模式。,Systemd(系统管理守护进程),最开始以GNU GPL协议授权开发,现在已转为使用GNU LGPL协议,它是如今讨论最热烈的引导和服务管理程序。如果你的Linux系统配置为使用Systemd引导程序,它取替传统的SysV init,启动过程将交给systemd处理。Systemd的一个核心功能是它同时支持SysV init的后开机启动脚本。,systemd 是内核启动后的第一个用户进程,PID 为1,是所有其它用户进程的父进程。,系统初始化需要做的事情非常多。需要启动后台服务,比如启动 ssh 服务;需要做配置工作,比如挂载文件系统。这个过程中的每一步都被 systemd 抽象为一个配置单元,即 unit。可以认为一个服务是一个配置单元,一个挂载点是一个配置单元,一个交换分区的配置是一个配置单元等等。,下面是一些常见的 unit 类型:,Unit 文件按照 Systemd 约定,应该被放置指定的三个系统目录之一中。这三个目录是有优先级的,如下所示,越靠上的优先级越高。因此,在三个目录中有同名文件的时候,只有优先级最高的目录里的那个文件会被使用。,Systemd 默认从目录 /etc/systemd/system/ 读取配置文件。但是,里面存放的大部分文件都是符号链接,指向目录 /usr/lib/systemd/system/,真正的配置文件存放在那个目录。,Target 就是一个 Unit 组,包含许多相关的 Unit 。,Unit 是 Systemd 管理系统资源的基本单元,可以认为每个系统资源就是一个 Unit,并使用一个 Unit 文件定义。在 Unit 文件中需要包含相应服务的描述、属性以及需要运行的命令。,systemd.service 中文手册
参考URL:,每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install],把自己的服务使用systemd管理需要书写*.service文件,如服务名xxx.service,下面我们介绍一下*.service文件里面具体的内容。
进入目录 cd /etc/systemd/system/,[service],美: [ˌkeɪpəˈbɪləti]
英: [.keɪpə’bɪləti]
n. 能力;才能;(国家的)军事力量
网络 性能;容量;才干,bound
美: [baʊnd]
英: [baʊnd]
n. 边界;跳跃;范围;界限
v. 跳跃;邻接;“bind”的过去分词和过去式;限制
adj. 打算;要往(某处)去的;被束缚的;理应…的
网络 弹跳;边边界框;弹跳力,CAP_NET_ADMIN
执行各种与网络相关的操作:
* 接口配置;
* 管理 IP 防火墙、伪装和
会计;
* 修改路由表;
*绑定到任何地址以进行透明代理;
* 设置服务类型 (TOS);
* 清除驱动程序统计信息;
* 设置混杂模式;
*启用多播;
* 使用setsockopt(2)设置以下套接字选项:
SO_DEBUG、SO_MARK、SO_PRIORITY(对于优先级外
范围 0 到 6)、SO_RCVBUFFORCE和SO_SNDBUFFORCE。,[Install],Target的含义是服务组,表示一组服务。WantedBy=multi-user.target指的是,sshd 所在的 Target 是multi-user.target。,这个设置非常重要,因为执行systemctl enable sshd.service命令时,sshd.service的一个符号链接,就会放在/etc/systemd/system目录下面的multi-user.target.wants子目录之中。,一般来说,常用的 Target 有两个:一个是multi-user.target,表示多用户命令行状态;另一个是graphical.target,表示图形用户状态,它依赖于multi-user.target。,Systemd 入门教程:实战篇
参考URL: https://www.jb51.net/article/269756.htm
Linux命令——systemctl
参考URL:https://www.jb51.net/article/269756.htm,systemd对应的进程管理命令就是systemctl。,Systemd 入门教程:实战篇
参考URL: https://www.jb51.net/article/269756.htm
返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发

请先 登录 再评论,若不是会员请先 注册