1.编写.service
例:
[Unit]
Description=AppService
After=network.target
[Service]
Type=simple
ExecStart=/xx/xx/app
[Install]
WantedBy=multi-user.target
**
文件详解:
1.[Unit]:
对应服务的主要配置部分,包括描述、依赖、日志输出和执行顺序等。常用参数包括:
Description:服务的简短描述。
After/Before:定义服务启动顺序和依赖关系,用于确保某些服务在其他服务之前启动。
Wants/Requires:和 After/Before 类似,但是只要求服务存在,不需要服务运行。
Conflicts:定义不兼容的服务。
2.[Service]:
指定服务的启动和运行方式。常用参数包括:
Type:定义服务的类型,通常为 simple、forking 或者 oneshot。
ExecStart/ExecStartPre/ExecStartPost:定义服务启动时需要执行的命令或脚本。
Restart:定义服务出现错误时的重启方式。
User/Group:定义服务运行所使用的用户和组。
EnvironmentFile:定义存储在文件中的环境变量,以供服务启动时使用。
3.[Install]:
定义如何安装和启用服务。
WantedBy/RequiredBy:定义哪些目标需要此服务。
Alias:定义服务的别名。
配置:
1.将 .service 文件复制到 /etc/systemd/system/ 目录中。通常,这个目录是存储 systemd 单元文件的标准位置。
2.运行 sudo systemctl daemon-reload 命令来重新加载 systemd 配置。
3.使用 sudo systemctl start your-service-name.service 命令来启动服务。请确保将 your-service-name.service 替换为您的服务名称。
4.可选地,您可以运行 sudo systemctl enable your-service-name.service 命令来设置系统引导时自动启动服务。这样,即使在重新启动系统后,服务也会自动启动。
设置全局
1.使用管理员权限将您的服务文件复制到 /lib/systemd/system/ 目录中:
bash
sudo cp my-service.service /lib/systemd/system/
2.运行以下命令以重新加载 systemd 配置:
bash
sudo systemctl daemon-reload