首页 > 其他分享 >Systemd教程

Systemd教程

时间:2023-07-31 21:35:15浏览次数:45  
标签:sshd 配置文件 service 启动 教程 Systemd 字段 区块

title: "Systemd教程"
date: 2023-07-31T16:05:25+08:00
tags: ["Linux运维"]
categories: []
draft: false

Systemd 入门教程:实战篇 - 阮一峰的网络日志

配置文件

$ systemctl cat sshd.service

[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
Type=simple
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

Unit区块

Unit区块:启动顺序与依赖关系。
Description字段给出当前服务的简单描述。
Documentation字段给出文档位置。
After字段表示如果network.targetsshd-keygen.service需要启动,那么sshd.service应该在它们之后启动。
Before字段定义sshd.service应该在哪些服务之前启动。
注意,After和Before字段只涉及启动顺序,不涉及依赖关系。

设置依赖关系,需要使用Wants字段和Requires字段。
Wants字段表示sshd.servicesshd-keygen.service之间存在"弱依赖"关系,即如果sshd-keygen.service启动失败或停止运行,不影响sshd.service继续执行。
Requires字段则表示"强依赖"关系,即如果该服务启动失败或异常退出,那么sshd.service也必须退出。
注意,Wants字段与Requires字段只涉及依赖关系,与启动顺序无关,默认情况下是同时启动的。

举例来说,某 Web 应用需要 postgresql 数据库储存数据。在配置文件中,它只定义要在 postgresql 之后启动,而没有定义依赖 postgresql 。上线后,由于某种原因,postgresql 需要重新启动,在停止服务期间,该 Web 应用就会无法建立数据库连接。

Service区块

Service区块:启动行为,Service区块定义如何启动当前服务。

EnvironmentFile字段指定当前服务的环境参数文件。该文件内部的key=value键值对,可以用$key的形式,在当前配置文件中获取。上面的例子中,sshd 的环境参数文件是/etc/sysconfig/sshd
配置文件里面最重要的字段是ExecStartExecStart字段:定义启动进程时执行的命令。
上面的例子中,启动sshd,执行的命令是/usr/sbin/sshd -D $OPTIONS,其中的变量$OPTIONS就来自EnvironmentFile字段指定的环境参数文件。

Install区块

Install区块,定义如何安装这个配置文件,即怎样做到开机启动。
WantedBy字段:表示该服务所在的 Target

标签:sshd,配置文件,service,启动,教程,Systemd,字段,区块
From: https://www.cnblogs.com/devin1024/p/17594529.html

相关文章

  • 无涯教程-Lua - 简介
    Lua是一种轻量语言,它的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快。它用ANSIC语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。和许多“大而全”的语言不一样,网络通信、图形界面等都没有默认提供。但是Lua可以很容易地被......
  • 面向对象教程
    本文会涉及到一下编程语言的内容:C++、java、python等面向对象的语言本文举例的语言均为tiobe语言排行榜前20名中面向对象中我了解的,包括C++、C#、Java、JavaScript、Python3、Ruby、Go、Swift、PHP(排名不分先后)类(class)与对象(object)我们用国家球来举例国家球就是一个扁形上窄下......
  • Apipost教程?一篇文章玩转Apipost
    你是否经常遇到接口开发过程中的各种问题?或许你曾为接口测试与调试的繁琐流程而烦恼。不要担心!今天我将向大家介绍一款功能强大、易于上手的接口测试工具——Apipost,并带你深入了解如何玩转它,轻松实现接口测试与调试。什么是Apipost?Apipost是一款API全生命周期管理平台,它提供了......
  • Go开发环境配置保姆式教程,VScode
    需求:Go开发环境配置以及VScode插件安装 1.1安装go1.20.6.windows-amd64.msi 下载地址:https://golang.google.cn/dl/ (1)  选择Windows版本go1.20.6.windows-amd64.msi  (2)下载完成后,双击.msi进行安装   (3)点击next  (4)  勾选同意,点击n......
  • 第7期ThreadX视频教程:如何实现RTOS高效的任务管理,抢占式调度,时间片调度和零中断延迟(20
    视频教程汇总帖:https://www.armbbs.cn/forum.php?mod=viewthread&tid=110519 本期视频为大家分享高效的RTOS任务管理设计,通过这个点来引出抢占式调度,时间片调度,任务优先级设置和零中断延迟。RTOS任务高效管理是我们使用RTOS一个重要原因。视频:https://www.bilibili.com/vi......
  • 一篇关于预测“未来”的教程:运行在 Intel AIxBoard™ 开发板上的 TDengine
    英特尔数字化开发套件AIxBoard是一款AI架构的人工智能嵌入式开发板,体积小巧功能强大,可以在时序数据预测、图像分类、目标检测分割和语音处理等应用中并行运行多个神经网络。作为一款面向专业创客、开发者的功能强大的小型计算机,借助开源人工智能工具套件OpenVINO,AIxBoard......
  • Java NIO系列教程(十一) Pipe
    JavaNIO管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。这里是Pipe原理的图示: 创建管道通过Pipe.open()方法打开管道。例如:Pipepipe=Pipe.open();向管道写数据要向管道写数据,需要访问sink通道。像这样:Pi......
  • Java NIO系列教程(三) Buffer
    JavaNIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIOBuffer对象,并提供了一组方法,用来方便的访问该块内存。下面是NIOBuffer相关的话题列表: Buffe......
  • 无涯教程-jQuery - css( properties )方法函数
    css(properties)方法将键/值对象设置为所有匹配元素的样式属性。css(properties)-语法selector.css(properties)上面的语法可以写成如下-selector.css({key1:val1,key2:val2....keyN:valN})这是此方法使用的所有参数的描述-key:value   - 设置为样式属性......
  • 四旋翼无人机使用教程
    文章目录前言一、检查遥控器电源开关混控拨码开关微调开关飞行模式刹车开关行程开关接收机对码二、检查飞机检查接线三、解锁并飞行前言PX4固件QGC地面站Pixhwak飞控Mc6c遥控器开源飞控博大精深,欢迎广大爱好者加博主微信名片,一起学习交流。一个人可以走的更快,一群人才能走得......