搜索
首页系统教程LINUX如何在SystemD中创建和运行新服务单元

几天前,我遇到了32位CentOS 8分布,并决定在较旧的32位系统上进行测试。启动后,我发现了一个网络连接问题。连接将下降,每次重新启动后都需要手动修复。这促使我探索自动解决方案。本文详细介绍了如何使用SystemD服务单元实现此目的。

在研究细节之前,让我们简要检查SystemD服务单元及其功能。我们将介绍SystemD服务单元的基础知识,它们与“目标”的交互以及配置服务单元以在启动时执行脚本的过程。重点将放在实际步骤上。

什么是SystemD服务单元?

SystemD服务单元是定义服务系统行为的配置文件。这可能包含旨在在启动期间或特定引导阶段运行的网络服务,应用程序或脚本。

这些单元被组织到目标中,代表了引导过程中的里程碑。例如,在达到多用户目标( Runlevel 3 )时,请先使用特定服务。将目标视为服务“”在各个引导阶段进行合作。

要查看目标中活动的服务(例如, Graphical.target ),请使用systemctl命令:

 systemctl -type =服务

这将在当前目标中显示所有活动服务。一些服务不断运行;其他人执行一次并终止。

如何在SystemD中创建和运行新服务单元

监视服务状态

要检查服务的状态(活动或无效),请使用systemctl status

 SystemCtl状态FireWalld.Service

此命令检查Firewalld的状态。观察其主动(运行)并启用(重新启动)状态(自动启动)状态。

暂时停止服务(直到下一个引导):

 SystemCtl停止FireWalld.Service
SystemCtl状态FireWalld.Service

这阻止了当前会议的防火墙,但并不能阻止将来重新启动。

如何在SystemD中创建和运行新服务单元

启用和禁用服务

要确保启动时的服务自动启动,请启用它(在目标的“想要”文件夹中创建符号链接):

 SystemCtl启用FireWalld.Service

通过:

 SystemCtl禁用防火墙

如何在SystemD中创建和运行新服务单元

创建自定义服务单元

要创建启动时间脚本服务,请在/etc/systemd/system中创建一个新的服务单元。该目录包含现有服务单元文件和目标文件夹。

 CD/ETC/SystemD/System
LS -L 

如何在SystemD中创建和运行新服务单元

使用VIM或类似编辑器创建connection.service

 vim连接。服务

添加以下内容:

 [单元]
描述=提出网络连接
after = network.target

[服务]
execstart =/root/脚本/conup.sh

[安装]
wantby =多用户.target

解释:

  • [Unit] :元数据;描述单元并指定network.target后的执行(确保网络初始化)。
  • [Service] :定义命令( conup.sh脚本执行)。
  • [Install] :指定在multi-user.target上的加载。

在重新启动时启用自动启动的服务:

 SystemCtl启用连接。服务

通过检查multi-user.target.wants验证启用:

 LS -L多用户.target.wants/

connection.service服务符号链接应存在。现在,创建脚本。

如何在SystemD中创建和运行新服务单元

创建脚本

创建conup.sh脚本以还原网络连接:

 CD /根
mkdir脚本
CD脚本
vi conup.sh

添加此行(假设接口为enp0s3 ):

 #!/bin/bash
NMCLI连接UP ENP0S3

使脚本可执行:

 chmod x conup.sh

现在已经准备好了。

SELINUX考虑(RHEL/CENTOS)

在基于RHEL的系统(CentOS,Rocky Linux)上,Selinux可能会阻止脚本执行,除非应用正确的安全性上下文。

暂时设置上下文:

 CHCON -T bin_t/root/scripts/conup.sh

对于永久解决方案:

 semanage fcontext -a -t bin_t“/root/scripts/conup.sh”
Restorecon -v/root/scripts/conup.sh

这样可以确保在重新启动或SELINUX策略更新后继续执行脚本。

测试服务

通过手动启动服务而无需重新启动的测试:

 SystemCtl启动连接。服务

如果成功,网络连接应恢复。对于更简单的脚本(例如, touch /tmp/testbootfile ),请检查/tmp/testbootfile创建以确认服务执行。

结论

本指南对SystemD服务单元,其创建,管理和应用在自动化任务(例如启动上的网络连接恢复)中提供了全面的了解。这增强了系统自动化和效率。

以上是如何在SystemD中创建和运行新服务单元的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何在Linux中自动重新启动失败的服务如何在Linux中自动重新启动失败的服务Apr 28, 2025 am 09:39 AM

本指南详细介绍了如何使用SystemD配置自动服务在Linux中重新启动,从而增强了系统的可靠性并最大程度地减少停机时间。 系统管理员通常依靠此功能来确保关键服务,例如Web服务器(APA

10个隐藏的Linux命令每个系统都应该知道10个隐藏的Linux命令每个系统都应该知道Apr 28, 2025 am 09:35 AM

作为Linux用户,我们经常依赖常用的命令ls、grep、awk、sed和find来完成工作。但Linux拥有大量鲜为人知的命令,可以节省时间、自动化任务并简化工作流程。 本文将探讨一些被低估但却功能强大的Linux命令,它们值得更多关注。 rename – 高效批量重命名文件 当您需要一次重命名多个文件时,rename命令是救星。无需使用包含mv的循环,rename允许您轻松应用复杂的重命名模式。 将所有.txt文件更改为.log。 rename 's/\.txt$/\.log/' *

如何在Linux中的SystemD下列出所有运行服务如何在Linux中的SystemD下列出所有运行服务Apr 28, 2025 am 09:29 AM

Linux 系统提供各种系统服务(例如进程管理、登录、syslog、cron 等)和网络服务(例如远程登录、电子邮件、打印机、Web 托管、数据存储、文件传输、域名解析(使用 DNS)、动态 IP 地址分配(使用 DHCP)等等)。 从技术上讲,服务是在后台持续运行的进程或进程组(通常称为 守护进程),等待传入请求(尤其来自客户端)。 Linux 支持不同的方式来管理(启动、停止、重启、启用系统启动时的自动启动等)服务,通常通过进程或服务管理器。几乎所有现代 Linux 发行版现在都使用相同的进

Crossover 25:在Linux上运行Windows软件和游戏Crossover 25:在Linux上运行Windows软件和游戏Apr 28, 2025 am 09:27 AM

使用Crossover 25运行Windows软件和游戏 由于CodeWeavers的Crossover 25,在Linux上运行Windows应用程序和游戏现在比以往任何时候都容易。 这个商业软件解决方案让Linux用户运行各种各样的风

PCLOUD-最安全的云存储[优惠50%]PCLOUD-最安全的云存储[优惠50%]Apr 28, 2025 am 09:26 AM

使用PCLOUD保护数据:Linux安装的综合指南 领先的安全云存储服务PCloud提供了一个可靠的平台来管理您的文件和数据。本指南详细介绍了Linux系统上的安装过程。 关于

MANGOHUD-监视FPS,Linux游戏中的CPU和GPU使用情况MANGOHUD-监视FPS,Linux游戏中的CPU和GPU使用情况Apr 28, 2025 am 09:25 AM

MangoHud:实时监控Linux游戏性能的利器 MangoHud是一款功能强大且轻量级的工具,专为游戏玩家、开发者以及任何希望实时监控系统性能的用户而设计。它作为Vulkan和OpenGL应用程序的叠加层,显示FPS、CPU和GPU使用率、温度等重要信息。本文将探讨MangoHud的功能、工作原理以及使用方法,并提供在Linux系统上安装和配置MangoHud的分步说明。 MangoHud是什么? MangoHud是一个开源项目,可在GitHub上获取,旨在提供一种简单且可自定义的方式来监

5必不可少的Linux命令行档案工具 - 第1部分5必不可少的Linux命令行档案工具 - 第1部分Apr 28, 2025 am 09:23 AM

管理存档文件是Linux中的常见任务。本文是两部分系列中的第一篇,探讨了五种强大的命令行档案工具,详细介绍了他们的功能和示例的用法。 1。焦油命令:多功能存档实用程序 t

在Linux中比较文件的前7个工具(示例)在Linux中比较文件的前7个工具(示例)Apr 28, 2025 am 09:21 AM

本指南探讨了用于比较Linux中文本文件的各种方法,Linux是系统管理员和开发人员的关键任务。 我们将介绍命令行工具和视觉差异工具,突出显示其优势和适当的用例。 假设

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器