一、systemd基本介绍
- 【定义】守护进程是执行各种任务的后台等待或运行的进程,一般情况下,守护进程在系统引导时自动启动并持续运行至关机或被手动停止,Linux中许多守护进程的名称以字母d结尾
- 【作用】启动系统服务和守护进程,还能监视它们的状态并在有需要的时候进行重启
- 【systemd提供的功能】并行化功能,提高系统的启动速度; 按需启动守护进程,而不需要单独的服务; 自动服务依赖关系管理,可以防止长时间超市; 利用Linux控制组一起追踪相关进程的方式
二、安装与配置
apt-get update
apt-get install -y systemd
三、实例应用
- 在创建守护程序之前,我们需要创建一个 systemd 服务文件。服务文件是一个包含描述服务的信息的文本文件。服务文件的位置在 /etc/systemd/system/ 目录下。例如,我们创建一个名为 golang-demo.service 的服务文件:
vim /etc/systemd/system/goploy.service
# 文件中添加以下内容
[Unit]
Description=The Goploy
After=network.target
[Service]
Environment="HOME=/root"
WorkingDirectory=/home/www
ExecStart=/home/www/goploy
ExecStop=/home/www/goploy -s
[Install]
WantedBy=multi-user.target
[Unit] 部分包含服务名称和描述,以及该服务应该在何时启动(在 network.target 后)。 [Service] 部分描述了启动服务的详细信息,包括使用的用户组,以及启动脚本文件的位置。 [Install] 部分规定了 systemd 应该在哪个目标身上启动该服务
四、测试
# 启动
systemctl start goploy.service
# 停止
systemctl stop goploy.service
# 查看服务状态
systemctl status goploy.service
# 开机自启动
systemctl enable goploy.service
五、摘要
状态标识
| 关键词 | 描述 |
|---|---|
| loaded | 单元配置文件已处理 |
| active(running) | 正在通过一个或多个持续进程运行 |
| active(exited) | 已成功完成一次性配置 |
| active(waiting) | 运行中,但在等待事件 |
| inactive | 不在运行 |
| enabled | 将在系统启动时启动/ |
| disabled | 不会在系统启动时启动 |
| 静态 | 无法启动,但可以由某一启动的单元自动启动 |
systemctl命令
| 命令 | 任务 |
|---|---|
| systemctl status UNIT | 查看有关单元状态的详细信息 |
| systemctl stop UNIT | 在运行中的系统上停止一项服务 |
| systemctl start UNIT | 在运行中的系统上启动一项服务 |
| systemctl restart UNIT | 在运行中的系统上重新启动一项服务 |
| systemctl reload UNIT | 重新加载运行中服务的配置文件 |
| systemctl mask UNIT | 彻底禁用服务,使其无法手动启动或在系统启动时启动 |
| systemctl unmask UNIT | 使屏蔽的服务变得可用 |
| systemctl enable UNIT | 将服务配置为在系统启动时启动 |
| systemctl disable UNIT | 禁止服务在系统启动时启动 |
| systemctl list-dependencies UNIT | 列出指定单元需要的单元 |