Systemd启动配置常用参数
编辑Systemd启动配置常用参数
1. [Unit]参数
[Unit]参数定义了service单元的元数据,是systemd下的主要块,包括以下参数:
Description:描述该unit的信息,可以是任何你想要指定的字符串信息。
After:设置当前unit所依赖的其他unit启动完成后再启动服务。指定的单元应该以服务名称的方式指定。可以指定多个unit,多个unit之间空格隔开。
Requires:设置该unit所依赖的其他unit。如果依赖的unit没有启动,则当前unit也不会被启动。
PartOf:配置关联的单元列表,即如果一个单元结束,这个关联的单元列表也同样结束。可以指定多个单元之间以空格隔开。
示例:
[Unit]
Description=My Awesome Service
After=network.target
Wants=network-online.target
Requires=mysql.service
PartOf=awesome.service nginx.service
2. [Service]参数
[Service]参数定义了服务单元的配置信息,包括以下参数:
Type:定义服务进程的类型,取值为simple、forking、oneshot、notify和dbus。一般情况下,我们常用的是simple,表示服务以前台进程的形式运行,而且systemd通过ExecStart命令执行服务程序。
User:指定服务进程的运行用户,可以是一个已存在的用户名或者是一个UID(UserID)。
Group:指定服务进程的运行组,默认为该用户的主组。
ExecStart:定义启动服务进程的命令,可以使用绝对路径或相对路径,指定一个或多个执行命令。可以在同一行用“\”来指定多个命令,也可以使用多行的方式来指定多个命令。
Restart:设置服务进程退出后的自动重启方式。取值包括no(不自动重启)、always(总是自动重启)、on-success(只有在服务运行成功后重启)和on-failure(只有在服务运行失败后重启)。
RestartSec:设置服务进程重启间隔的时间,单位为秒。
StartLimitIntervalSec:设置一个时间段,在这个时间段中如果服务进程重启次数超过StartLimitBurst设置的值,则该服务会被自动禁止启动。时间段指定的是一个整数和一个时间单位的组合,如60s或5m。
StartLimitBurst:设置服务进程在StartLimitIntervalSec指定的时间段中允许重启的次数。
WorkingDirectory:设置服务程序的工作目录,也就是服务程序的根目录路径。
EnvironmentFile:设置服务进程运行时的环境变量文件路径。
Environment:设置服务进程运行时的环境变量,可以是一个字符串的键值对,多个环境变量间以空格隔开。
示例:
[Service]
Type=simple
User=nobody
Group=nobody
ExecStart=/usr/local/bin/my-app
Restart=on-failure
RestartSec=10s
StartLimitIntervalSec=60s
StartLimitBurst=4
WorkingDirectory=/var/lib/my-app
EnvironmentFile=/etc/my-app/config
Environment="MY_APP_VERSION=1.0.0" "MY_APP_HOST=127.0.0.1"
3. [Install]参数
[Install]参数定义了服务单元的安装、启动和启动级别信息,包括以下参数:
WantedBy:指定当前unit希望安装到哪个目标之下,表示当前unit会在指定的目标之下并行运行。
RequiredBy:表示当前unit总是在指定目标之下运行,并且在指定目标启动之前必须启动这个unit。
示例:
[Install]
WantedBy=multi-user.target
RequiredBy=nginx.service
下面是一个nacos 服务配置示例
[Unit]
Description=nacos
After=syslog.target network.target
[Service]
Type=simple
WorkingDirectory=/data/service/nacos
ExecStart=java -jar /data/service/nacos/nacos.jar
[Install]
WantedBy=multi-user.target
- 16
- 2
-
分享