要在 Ubuntu 启动后执行一个守护脚本,您可以使用 Shell 脚本编写一个 systemd 服务单元。systemd 是 Ubuntu 中常用的服务管理工具,可以在系统启动时自动启动和管理服务。
下面是一个示例的守护脚本和 systemd 服务单元的步骤:
-
创建守护脚本:
创建一个 Shell 脚本文件,例如mydaemon.sh
,并在其中编写您的守护脚本代码。确保脚本具有可执行权限。示例脚本如下:#!/bin/bashwhile true; do# 在此处编写您的守护脚本逻辑echo "Hello, I am a daemon script."sleep 10 done ```请根据您的实际需求编写守护脚本的逻辑。
-
创建 systemd 服务单元:
在/etc/systemd/system/
目录下创建一个.service
文件,例如mydaemon.service
。这个文件命名可以根据您的需求进行修改。示例服务单元文件如下:[Unit] Description=My Daemon Service After=network.target[Service] ExecStart=/path/to/mydaemon.sh Restart=always[Install] WantedBy=default.target
将 ExecStart
的路径 /path/to/mydaemon.sh
替换为您实际的守护脚本的路径。您可以在 Description
字段中为服务提供一个描述,并根据需要进行其他配置。
Restart=always 将使得 服务开机自启,如果挂掉,自己也会重启。
-
设置权限和重载 systemd:
在终端中执行以下命令,设置服务单元文件的权限并重载 systemd:sudo chmod 644 /etc/systemd/system/mydaemon.service sudo systemctl daemon-reload```
-
启用和启动服务:
在终端中执行以下命令,启用并启动您的守护脚本服务:sudo systemctl enable mydaemon.service sudo systemctl start mydaemon.service```
现在,您的守护脚本将在 Ubuntu 启动后自动运行,并作为后台服务持续运行。
您可以使用以下命令来管理您的守护脚本服务:
- 启动服务:
sudo systemctl start mydaemon.service
- 停止服务:
sudo systemctl stop mydaemon.service
- 重启服务:
sudo systemctl restart mydaemon.service
- 禁用服务:
sudo systemctl disable mydaemon.service
- 查看服务状态:
sudo systemctl status mydaemon.service
希望这个指南对您有所帮助。如果您有任何进一步的问题,请随时提问。
测试过程如下
创建 脚本过程省略,以下步骤展示了相关文件及文件内容,如需实践,请自行从上文查找
以下演示,步骤如下:
1、重新加载了 serivice 库
2、启用自定义的 mydaemon.service
3、启动自定义的 mydaemon.service
3、查看 mydaemon.service 状态(使用了两种命令)