本文介绍在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
创建systemd单元文件 您需要在“/etc/systemd/system/”目录下创建自定义服务单元文件,因为这是为自定义脚本保留的。‘/etc/systemd/system’中的任何单元文件都会覆盖‘/lib/systemd/system’中的相应文件。 语法:systemd单元文件由三部分组成: Section-1 [Unit] Parameter 1 . . Parameter N Section-2 [Service] Parameter 1 . . Parameter N Section-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 1、Section-1: Unit:本节提供有关服务的基本信息。 Description:服务单位的简短描述。当您执行“systemctl status UNIT.service”命令时,描述会出现在服务单元名称旁边。 After:定义单元启动的顺序。“custom.service”单元只有在“network.target”单元启动后才会启动。 2、Section-2: Service:“Service”部分提供有关如何控制服务的说明。 Type:定义systemd服务的类型。它与“Type=simple”相同,但同时守护进程希望在准备就绪时向systemd发送信号。 ExecStart:它用于启动服务,其中包括实际服务可执行文件的完整路径。 3、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系统中创建自定义systemd服务单元文件,按照上面的方法操作即可。
相关主题 |