文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

在Linux中创建自定义脚本和创建systemd服务单元文件的方法是什么

2023-06-26 10:29

关注

今天就跟大家聊聊有关在Linux中创建自定义脚本和创建systemd服务单元文件的方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

前言

systemd是Linux操作系统的系统和服务管理器。当您从存储库安装任何应用程序时,它会将服务单元文件放入systemd目录中,您不应直接修改这些文件。

systemd单元文件将在以下三个目录中找到:

/usr/lib/systemd/system/:安装软件包时删除的systemd单元文件。

/run/systemd/system/:在运行时创建的systemd单元文件。

/etc/systemd/system/:由“systemctl enable”命令创建的systemd单元文件以及为扩展服务而添加的单元文件。

有时您可能需要为自定义应用程序或守护程序或脚本创建服务单元文件。有很多参数可以添加,但我们只会添加几个值以使单元文件更简单以便更好地理解。

例如:要在systemd系统启动时运行自定义脚本,您需要创建一个自定义服务单元文件。

创建自定义脚本

以下shell脚本将在文件中写入欢迎消息,如下所示:

$ sudo vi /usr/sbin/welcome.sh

#!/bin/bash

echo 'Welcome to Linux WORLD..!!!' >> /tmp/welcome.txt

参考:在Linux系统中运行.sh文件的两种方法。

创建systemd单元文件

您需要在“/etc/systemd/system/”目录下创建自定义服务单元文件,因为这是为自定义脚本保留的。‘/etc/systemd/system’中的任何单元文件都会覆盖‘/lib/systemd/system’中的相应文件。

语法:systemd单元文件由三部分组成:

Section-1 [Unit]Parameter 1..Parameter NSection-2 [Service]Parameter 1..Parameter NSection-3 [Install]Parameter 1

为了演示这一点,我们将创建一个名为“custom.service”的systemd服务单元文件:

$ sudo vi /etc/systemd/system/custom.service

[Unit]

Description=example systemd custom service unit file

After=network.target

[Service]

Type=notify

ExecStart=/bin/bash /usr/sbin/welcome.sh

[Install]

WantedBy=multi-user.target

Section-1:

Unit:本节提供有关服务的基本信息。

Description:服务单位的简短描述。当您执行“systemctl status UNIT.service”命令时,描述会出现在服务单元名称旁边。

After:定义单元启动的顺序。“custom.service”单元只有在“network.target”单元启动后才会启动。

Section-2:

Service:“Service”部分提供有关如何控制服务的说明。

Type:定义systemd服务的类型。它与“Type=simple”相同,但同时守护进程希望在准备就绪时向systemd发送信号。

ExecStart:它用于启动服务,其中包括实际服务可执行文件的完整路径。

Section-3:

Install:“Install”部分提供了有关如何安装systemd服务的说明。

WantedBy:“WantedBy”设置指示应该在哪个目标下启动给定的服务单元。在这个例子中,custom.service使用了multi-user.target,所以systemd在启动时加载multi-user.target时会启动custom.service。

将可执行权限设置为“custom.service”:

$ sudo chmod a+x /etc/systemd/system/custom.service

要向systemd添加新服务,请运行:

$ sudo systemctl daemon-reload

要启动custom.service,请运行:

$ sudo systemctl start custom.service

要在启动时启用custom.service,请运行:

$ sudo systemctl enable custom.service

最后重新启动系统以检查custom.service是否通过验证输出文件在启动时按预期运行脚本:

$ sudo reboot

是的,它运作良好:

$ cat /tmp/welcome.txt

Welcome to Linux WORLD..!!!

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

看完上述内容,你们对在Linux中创建自定义脚本和创建systemd服务单元文件的方法是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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