今天就跟大家聊聊有关在Linux中创建自定义脚本和创建systemd服务单元文件的方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
创新互联公司长期为数千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为鄂尔多斯企业提供专业的成都网站建设、网站设计,鄂尔多斯网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。
前言
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 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是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。
看完上述内容,你们对在Linux中创建自定义脚本和创建systemd服务单元文件的方法是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。