要创建一个自定义的systemctl服务,你需要完成以下步骤:

  1. 创建一个服务文件:在/etc/systemd/system/目录下创建一个以.service为扩展名的服务文件,例如my-service.service
  2. 编辑服务文件:使用文本编辑器打开服务文件,添加以下内容:
[Unit]
Description=My Custom Service
After=network.target

[Service]
ExecStart=/path/to/your/script.sh
Restart=always
User=username

[Install]
WantedBy=default.target

各字段的含义如下:

  • [Unit]:这个部分主要描述服务单元的信息。

    • Description:对服务的简要描述,用于说明服务的用途。
    • After:指定在启动此服务之前应该先启动的其他单元。
  • [Service]:这个部分定义了如何运行服务。

    • ExecStart:指定服务启动时要运行的命令或脚本的路径。这里应该填写你自己的脚本的路径。
    • Restart:指定服务在失败或终止后是否应该自动重启。always表示始终重启。
    • User:指定服务运行的用户。你需要将username替换为你希望服务运行的实际用户名。
  • [Install]:这个部分定义了服务的安装信息。

    • WantedBy:指定在启动默认目标时是否启用此服务。default.target是系统默认的目标。

完成以上步骤后,保存并关闭文件。然后运行以下命令启动服务:

sudo systemctl start my-service

如果一切顺利,你的自定义服务就会启动。

可以在 Service 下面指定 执行脚本的 用户用户组

[Service]
User = xxx
Group = xxx

你还可以使用systemctl命令进行其他操作,如停止服务、重启服务和查看服务状态。以下是一些常用的命令:

  • 启动服务:sudo systemctl start my-service
  • 停止服务:sudo systemctl stop my-service
  • 重启服务:sudo systemctl restart my-service
  • 查看服务状态:sudo systemctl status my-service
  • 设置服务开机启动:sudo systemctl enable my-service
  • 取消服务开机启动:sudo systemctl disable my-service
  • 查看是否开机启动:sudo systemctl is-enabled my-service

希望这些信息能对你有所帮助!如有任何疑问,请随时提问。