Systemd 使用方法

参考文档 📝

systemd

一、常用命令

start 启动服务:

sudo systemctl start application.service

stop 停止服务:

sudo systemctl stop application.service

restart 重启服务:

sudo systemctl restart application.service

reload 重新加载配置文件,如果你的服务支持该操作的话,如 nginx

sudo systemctl reload application.service

如果你不确定你的服务是否支持重加载,那么可以使用 reload-or-restart 命令,systemd 会首先 reload,如果该服务器不支持 reload 则 restart:

sudo systemctl reload-or-restart application.service

status 用于检查当前的服务状态,包括服务器日志等:

sudo systemctl status application.service

enable 用于在机器启动时自动启动该服务器:

sudo systemctl enable application.service

disable 可以让服务在开机时停止自动启动:

sudo systemctl disable application.service

is-active 用于查询服务器是否启动:

systemctl is-active application.service

is-enable 用于查询服务是否开机自启:

systemctl is-enabled application.service

is-failed 用于查询服务是否启动失败:

systemctl is-failed application.service

注意 💥

systemd 可以自动检测服务的文件地址,因此可以省略上面的.service后缀,下同

二、系统服务

显示启动的服务:

systemctl list-units

显示所有的服务:

systemctl list-units --all

服务筛选,如仅显示未启动的服务:

systemctl list-units --all --state=inactive

三、服务配置

显示某服务的配置文件内容:

systemctl cat application.service

显示某服务的依赖:

systemctl list-dependencies application.service

修改某服务:

sudo systemctl edit --full application.service

新建某服务:

sudo systemctl edit --full --force application.service

删除某服务:

sudo rm /etc/systemd/system/application.service
sudo rm -r /etc/systemd/system/application.service.d

重启 systemd:

sudo systemctl daemon-reload

四、新建服务

新建某服务:

sudo systemctl edit --full --force application.service

服务模板:

[Unit]
After=network.target
Description=description
StartLimitBurst=5
StartLimitIntervalSec=100

[Service]
Type=simple
User=user_name
Restart=always
RestartSec=1
ExecStart=/path/to/app

[Install]
WantedBy=multi-user.target