systemctl简单应用,开启自启动、停止、重启

本文介绍了Linux系统中的systemctl工具,用于管理systemd系统和服务。内容包括[Unit]部分的启动顺序和依赖设置,[Service]部分的Type、Restart、KillMode等详细配置,以及如何启动、停止、重启服务和设置开机自启动。适用于Ubuntu和CentOS等发行版。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

systemctl

  systemctl是linux中的服务管理,是一个systemd的工具,主要负责控制systemd系统和服务管理器
在ubuntu 、centos等一系列发行版中可用。可以方便的管理需要启动的服务等。可以实现开机自启动、出错重启和定时重启等等功能。

简单的演示

[Unit]
Description= a sample thing

[Service]
type=simple
Restart=on-failure
ExecStart=/home/ubuntu/mimc-fast-aarch64

[Install]
WantedBy=multi-user.target

一、 [Unit]

定义启动的顺序以及依赖的关系

可选项描述
Description主要是填写一些信息,用于当前服务的简单描述
Documentation可以用来指定文档的位置,用于当前服务文档查询
After可以指定在哪些服务之后进行启动
Before可以指定在哪些服务之前进行启动
Wants可以指定服务依赖于哪些服务(这种依赖是"弱依赖",即使所依赖的服务的启动情况不影响当前的服务是否启动)
Requires可以指定服务依赖于哪些服务(这种依赖是"强依赖",一旦所依赖的服务异常,当前的服务也随之停止)

二、[Service]

定义启动、关闭和重启服务等操作时的方式

可选项描述
EnvironmentFile用来指定当前服务启动的环境变量 以路径的形式在文件中用key=value 的形式写入 读取时可以使用$key来读取
ExecStart指定服务启动时执行的命令
ExecStop指定服务停止时执行的命令
ExecReload指定服务重启时执行的命令
ExecStartPre指定服务启动之前执行的命令
ExecStartPost指定服务启动之后执行的命令
ExecStopPost指定服务停止之后执行的命令
RestartSec指定服务在重启前等待的时间(单位为 “秒”)
Type指定启动类型:见下方Type
Restart指定重启时的类型:见下方Restart
KillMode指定停止的方式:见下方KillMode

特殊前缀

  1.   @ :之后的参数依次作为"argv[0]  argv[1]   argv[2]  …"传给需要执行的进程
  2.   - :进程运行错误也不会当作执行失败,但是会在日志中报错
  3.   + :进程以超级管理员权限运行
1. [Type]
可选项描述
simple指定ExecStart字段的进程为主进程
forking指定以fork() 子进程执行ExecStart字段的进程
oneshot执行一次
notify启动后发送会发送通知信号通知systemd
idle等其他任务结束后才运行
2. [Restart]
可选项描述
no退出后不会重启
on-success当进程正常退出时(退出码为0) 执行重启
on-failure当进程不正常退出时(退出码不为0) 执行重启
on-abnormal当被信号终止和超时执行重启
on-abort当收到没有捕捉到的信号终止时执行重启
on-watchdog当看门狗超时时执行重启
always一直重启
3.[KillMode]
可选项描述
control-group杀掉当前进程中所有的进程
process杀掉当前进程的主进程
mixed主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号
none不杀掉任何进程

三、[Install]

定义安装配置文件(开机自启动必备)

可选项描述
WantedBy表示该服务所在的 Target(一般写  multi-user.target)

四、启动、停止、开机自启动

1. 启动
  • 通过systemctl start 来启动
sudo systemctl start test.service
2. 停止
  • 通过systemctl stop 来停止
sudo systemctl stop test.service
3. 重启
  • 通过systemctl restart 来重启
sudo systemctl restart test.service
4. 开启开机自启动
  • 通过systemctl enable 来开启开机自启动
sudo systemctl enable test.service
5. 关闭开机自启动
  • 通过systemctl disable 来关闭开机自启动
sudo systemctl disable test.service
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值