1. 编写和调试自定义脚本
通常,systemd 脚本被编写为 shell 脚本。
首先使用常规约定编写自定义脚本。
我们将我们的脚本称为 my-custom-script.sh 并且很简单:
#!/bin/sh echo I am a custom script
on it road.com
3. 向 systemd 描述自定义脚本
手动编写和测试脚本后,脚本已准备好向 systemd 系统进行描述。
为此,需要一个 [name].service 文件。
语法使用通常用于配置文件的 INI 格式。
继续我们的示例,我们需要一个 my-custom-script.service 文件。
每次服务启动时,可执行文件将只运行一次。
直到网络层启动并稳定后才会启动服务:
my-custom-script.sh 文件
# This is my-custom-script.service, which describes the [Unit] Description=This is executed on shutdown or reboot DefaultDependencies=no Wants=network-pre.target # 如果在运行脚本之前需要网络 Before=network-pre.target shutdown.target reboot.target halt.target # 定义停止单元的顺序。(必选) [Service] Type=oneshot # 允许指定随后按顺序执行的多个自定义命令。(必选) RemainAfterExit=true # oneshot设置所需(必需) Environment=ONE='one' "TWO='2" # 您可以设置一些环境变量,这些变量可能是作为参数传递所必需的 ExecStart=/bin/true # 因为是关闭脚本,所以启动此服务时不会执行任何操作 ExecStop=/bin/bash /usr/local/bin/my-custom-script.sh ${ONE} ${TWO} # 更改为脚本完整路径(必需) TimeoutStopSec=1min 35s # 配置停止等待的时间。 [Install] WantedBy=multi-user.target # 启用此单元后,WantedBy 中列出的单元将获得对单元的 Want 依赖关系。 (必需的)
5. 启用脚本以备将来重启
与早期版本的 chkconfig 类似,必须启用该服务。
由于添加了新服务,请通知 systemd 守护进程重新配置自身:
# systemctl enable my-custom-script.service # systemctl daemon-reload
2. 脚本必须是可执行的
让脚本可执行:
# chmod 0755 my-custom-script.sh
4. 将服务文件放入预期服务集合目录
让我们将自定义脚本放在服务集合目录中,例如:/etc/systemd/system/:
# cp my-custom-script.sh /etc/systemd/system/
systemd 工具替换了早期版本中较旧的 System-V 初始化脚本。
systemd 是一个事件驱动的工具,它允许并行启动、控制或者停止非依赖子系统。
在这里,我们解释了如何向 systemd 工具添加自定义脚本。
日期:2020-09-17 00:13:06 来源:oir作者:oir