几天前,我遇到了32位CentOS 8分布,并决定在较旧的32位系统上进行测试。启动后,我发现了一个网络连接问题。连接将下降,每次重新启动后都需要手动修复。这促使我探索自动解决方案。本文详细介绍了如何使用SystemD服务单元实现此目的。
在研究细节之前,让我们简要检查SystemD服务单元及其功能。我们将介绍SystemD服务单元的基础知识,它们与“目标”的交互以及配置服务单元以在启动时执行脚本的过程。重点将放在实际步骤上。
什么是SystemD服务单元?
SystemD服务单元是定义服务系统行为的配置文件。这可能包含旨在在启动期间或特定引导阶段运行的网络服务,应用程序或脚本。
这些单元被组织到目标中,代表了引导过程中的里程碑。例如,在达到多用户目标( Runlevel 3 )时,请先使用特定服务。将目标视为服务“组”在各个引导阶段进行合作。
要查看目标中活动的服务(例如, Graphical.target ),请使用systemctl
命令:
systemctl -type =服务
这将在当前目标中显示所有活动服务。一些服务不断运行;其他人执行一次并终止。
监视服务状态
要检查服务的状态(活动或无效),请使用systemctl status
:
SystemCtl状态FireWalld.Service
此命令检查Firewalld的状态。观察其主动(运行)并启用(重新启动)状态(自动启动)状态。
暂时停止服务(直到下一个引导):
SystemCtl停止FireWalld.Service SystemCtl状态FireWalld.Service
这阻止了当前会议的防火墙,但并不能阻止将来重新启动。
启用和禁用服务
要确保启动时的服务自动启动,请启用它(在目标的“想要”文件夹中创建符号链接):
SystemCtl启用FireWalld.Service
通过:
SystemCtl禁用防火墙
创建自定义服务单元
要创建启动时间脚本服务,请在/etc/systemd/system
中创建一个新的服务单元。该目录包含现有服务单元文件和目标文件夹。
CD/ETC/SystemD/System LS -L
使用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
服务符号链接应存在。现在,创建脚本。
创建脚本
创建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中文网其他相关文章!

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

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

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

使用Crossover 25运行Windows软件和游戏 由于CodeWeavers的Crossover 25,在Linux上运行Windows应用程序和游戏现在比以往任何时候都容易。 这个商业软件解决方案让Linux用户运行各种各样的风
![PCLOUD-最安全的云存储[优惠50%]](https://img.php.cn/upload/article/001/242/473/174580357418126.jpg?x-oss-process=image/resize,p_40)
使用PCLOUD保护数据:Linux安装的综合指南 领先的安全云存储服务PCloud提供了一个可靠的平台来管理您的文件和数据。本指南详细介绍了Linux系统上的安装过程。 关于

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

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

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


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

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

WebStorm Mac版
好用的JavaScript开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

记事本++7.3.1
好用且免费的代码编辑器

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器