1,介绍
centos使用systemd进行系统初始化,systemd是linux系统中目前流行的初始化工具,能提高系统的启动速度。
默认目录为/etc/systemd/system,文件以.service结尾,基本都是符号连接,真实存放在/usr/lib/systemd/system目录,有系统(system)和用户(user)之分
2,service文件参数介绍
service文件包含三个部分[Unit]、[Service]、[Install]
[Unit]
Description=kkm
After=network.service
[Service]
Type=simple
ExecStart=/home/hy/kkm.sh
Restart=always
RestartSec=10
PrivateTmp=true
[Install]
WantedBy=multi-user.target
部分参数说明,具体参考官网说明
名称 | 说明 |
---|---|
[Unit] | |
Description | 服务描述 |
Documentation | 服务文档说明,一组用空格分隔的文档URI列表 |
Wants | 配合的其他 Unit 列表,触发启动列出的每个 Unit 模块,如果它们没有运行,当前 Unit 不会启动失败 |
Requires | 依赖的其他 Unit 列表,列在其中的 Unit 模块会在这个服务启动的同时被启动,如果它们没有运行,当前 Unit 会启动失败 |
After | 必须在当前 Unit 之前启动 |
Before | 与 After 相反 |
Conflicts | 不能与当前 Unit 同时运行 |
[Service] | |
Type | 服务的类型,有
|
Environment | 为服务添加环境变量 |
EnvironmentFile | 指定加载一个包含服务所需的环境变量列表的文件,文件中的每一行都是一个环境变量的定义。 |
ExecStart | 启动当前服务的命令(需要使用绝对路径) |
ExecStartPre | 启动当前服务之前执行的命令,可以有多个,所有命令会按照文件中书写的顺序依次被执行。 |
ExecStartPost | 指定在启动执行 ExecStart 的命令后的收尾工作,也可以有多个。 |
ExecStop | 停止服务所需要执行的主要命令。(需要使用绝对路径) |
ExecStopPost | 指定在 ExecStop 命令执行后的收尾工作,也可以有多个。 |
ExecReload | 重新加载服务所需执行的主要命令。(需要使用绝对路径) |
Restart | 定义何种情况 Systemd 会自动重启当前服务。常用的值有 no,on-success,on-failure,on-abnormal,on-abort 和 always。默认值为 no,即不会自动重启服务。这些不同的值分别表示了在哪些情况下,服务会被重新启动 |
RestartSec | 如果服务需要被重启,这个参数的值为服务被重启前的等待秒数。 |
Nice | 服务的进程优先级,值越小优先级越高,默认为0。-20为最高优先级,19为最低优先级。 |
WorkingDirectory | 指定服务的工作目录。 |
RootDirectory | 指定服务进程的根目录( / 目录),如果配置了这个参数后,服务将无法访问指定目录以外的任何文件。 |
User | 指定运行服务的用户,会影响服务对本地文件系统的访问权限。 |
Group | 指定运行服务的用户组,会影响服务对本地文件系统的访问权限。 |
PrivateTmp | 是否给服务分配独立的临时空间(true/false) |
[Install] | |
WantedBy | 和 Wants 作用相似,只是后面列出的不是服务所依赖的模块,而是依赖当前服务的模块。“WantedBy=multi-user.target” 表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行 |
RequiredBy | 和Requires 作用相似,同样后面列出的不是服务所依赖的模块,而是依赖当前服务的模块。 |
Alias | 当前 Unit 可用于启动的别名 |
Also | 当这个服务被 enable/disable 时,将自动 enable/disable 后面列出的每个模块。 |