Linux Systemd服务
Linux Systemd服务(2021.07.09)
文章目录
- Linux Systemd服务(2021.07.09)
- 一、概述
- 二、配置文件
- 2.1 Unit
- 2.2 Service
- 2.3 Install
- 三、开机启动
- 四、启动服务
- 五、查看状态
- 六、停止服务
- 七、重启服务
一、概述
本文将介绍通过systemd
来实现服务的自启动。systemd
是一套系统启动和管理的工具,字母d
是守护进程(daemon)的缩写。
二、配置文件
systemd
的配置文件主要放置在/etc/systemd/system/
与/lib/systemd/system
目录,如果需要添加服务,只需在目录下添加对应的配置文件即可。例如:
# 添加服务配置文件
$ sudo vim /etc/systemd/system/demo.service
[Unit]
Description=demo # 服务描述
After=network.target # 指定服务依赖的 target[Service]
User=root # 服务运行用户
Group=root # 服务运行用户组WorkingDirectory=/root/water # 服务工作目录
ExecStart=/usr/local/bin/java -jar demo.jar # 服务启动命令
Type=simple # 服务进程启动方式Restart=on-failure # 指定服务何时重启[Install]
WantedBy=multi-user.target # 指定服务所属 target,与自启动相关,一般不用改# 重新加载所有 service 的配置
$ sudo systemctl daemon-reload
2.1 Unit
systemd
可以管理所有的系统资源,不同的资源称为Unit
(单位),该部分可以定义Unit
的元数据,以及配置与其它Unit
的关系。主要字段如下:
- Description:简短描述
- Documentation:文档地址
- Requires:当前 Unit 依赖的其他 Unit,如果它们没有运行,当前 Unit 会启动失败
- Wants:与当前 Unit 配合的其他 Unit,如果它们没有运行,当前 Unit 不会启动失败
- BindsTo:与
Requires
类似,它指定的 Unit 如果退出,会导致当前 Unit 停止运行 - Before:当前 Unit 必须在该字段指定的 Unit 之前启动
- After:当前 Unit 必须要在该字段指定的 Unit 之后启动
2.2 Service
Service
用来配置 Service,只有 Service 类型的 Unit 才有该部分。主要字段如下:
- Type:定义启动时的进程行为,它有以下几种值:
- Type=simple:默认值,执行 ExecStart 指定的命令,启动主进程
- Type=forking:以 fork 方式从父进程创建子进程,创建后父进程会立即退出
- Type=oneshot:一次性进程,Systemd 会等当前服务退出,再继续往下执行
- Type=dbus:当前服务通过D-Bus启动
- Type=notify:当前服务启动完毕,会通知 Systemd,再继续往下执行
- Type=idle:若有其他任务执行完毕,当前服务才会运行
- User:启动当前服务的用户
- Group:启动当前服务的用户组
- WorkingDirectory:当前服务的工作目录
- ExecStart:启动当前服务的命令
- ExecStartPre:启动当前服务之前执行的命令
- ExecStartPost:启动当前服务之后执行的命令
- ExecReload:重启当前服务时执行的命令
- ExecStop:停止当前服务时执行的命令
- ExecStopPost:停止当其服务之后执行的命令
- RestartSec:自动重启当前服务间隔的秒数
- Restart:定义何种情况 Systemd 会自动重启当前服务,可能的值包括always(总是重启)、on-success、on-failure、on-abnormal、on-abort、on-watchdog
- TimeoutSec:定义 Systemd 停止当前服务之前等待的秒数
- Environment:指定环境变量
2.3 Install
Install
用来定义如何启动,以及是否开机启动。主要字段如下:
- WantedBy:它的值是一个或多个 Target,当前 Unit 激活时(enable)符号链接会放入
/etc/systemd/system
目录下面以 Target 名 +.wants
后缀构成的子目录中 - RequiredBy:它的值是一个或多个 Target,当前 Unit 激活时,符号链接会放入
/etc/systemd/system
目录下面以 Target 名 +.required
后缀构成的子目录中 - Alias:当前 Unit 可用于启动的别名
- Also:当前 Unit 激活(enable)时,会被同时激活的其他 Unit
三、开机启动
通过下面的命令设置服务开机自启动:
$ sudo systemctl enable demo.service
四、启动服务
设置开机启动后,服务并不会立即启动,可以通过下列命令启动服务:
$ sudo systemctl start demo.service
五、查看状态
服务可能会启动失败,通过以下命令查看服务状态:
$ sudo systemctl status demo.service
六、停止服务
可以通过以下命令终止正在运行的服务:
$ sudo systemctl stop demo.service
如果命令没有响应,可以通过以下命令强制kill
进程:
$ sudo systemctl kill demo.service
七、重启服务
通过以下命令重启服务:
$ sudo systemctl restart demo.service
参考文章:
- Systemd 入门教程-命令篇:https://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
- Systemd 入门教程-实战篇:https://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html
Linux Systemd服务相关推荐
- linux systemd 服务管理脚本简介
我们运行 linux 服务器的主要目的是通过运行程序提供服务,比如 mysql.web server等.因此管理 linux 服务器主要工作就是配置并管理上面运行的各种服务程序.在 linux 系统中 ...
- linux systemd服务,systemd服务管理
显示所有已启用的Unit(list-units) 因为systemctl命令的默认选项是systemctl list-units,不添加任何选项的话,将显示list-units的结果. 另外在syst ...
- Linux之systemd服务配置及自动重启
Linux之systemd服务配置及自动重启 0 背景 在linux上开发时,往往需要将自己的程序做成服务,并且实现服务开机自动重启,以及服务崩溃后自动重启功能,本文就对该功能的实现做简单介绍,实现方 ...
- Linux 之systemd服务简介
Linux 之systemd服务简介 Systemd机制 systemd是Linux下的一种init软件,作用是提供更优秀的框架以表示系统服务之间的依赖关系,并依次实现系统初始化时服务的并行启动,同时 ...
- linux一运行大文件就自动重启,Linux之systemd服务配置及自动重启
layout: post title: Linux之systemd服务配置及自动重启 date: 2019-09-09 tags: linux --- Linux之systemd服务配置及自动重启 0 ...
- linux 自启动服务 SYSV,技术|LFCS 系列第七讲:通过 SysVinit、Systemd 和 Upstart 管理系统自启动进程和服务...
几个月前, Linux 基金会宣布 LFCS (Linux 基金会认证系统管理员) 认证诞生了,这个令人兴奋的新计划定位于让来自全球各地的初级到中级的 Linux 系统管理员得到认证.这其中包括维护已 ...
- CentOS 7下设置Docker代理(Linux下Systemd服务的环境变量配置)
Docker守护程序使用HTTP_PROXY,HTTPS_PROXY以及NO_PROXY环境变量在其启动环境来配置HTTP或HTTPS代理的行为.无法使用daemon.json文件配置这些环境变量. ...
- linux yum安装redis5.0,CentOS 7安装Redis 5.0.5并加入Systemd服务
记录在CentOS 7下安装Redis 5.0.5并加入Systemd服务的步骤. 1. 安装gcc-c++, tcl yum install gcc-c++ tcl 2. 解压缩, 编译, 测试 t ...
- 怎么终止linux的次序运行程序,linux – 如何按特定顺序停止systemd服务
当特定的systemd服务停止时,如何确保遵循特定的订单?我有几个运行的系统服务/单元,但在各种已安装的分区上使用资源.使用自定义服务安装和卸载这些分区.在自定义安装程序停止之前,需要以特定顺序停止正 ...
最新文章
- 2w字 + 40张图带你参透并发编程!
- Java数据结构2:堆排序思考
- 科学家利用脑机接口让患者正常发声
- 《嵌入式 Linux应用程序开发标准教程(第2版)》——1.1 嵌入式Linux基础
- python手机版怎么弄-手把手教你如何使用Python向手机发送通知
- LBE 隐私卫士原理分析
- 业务层勿用继承,不要为了方便舍弃了性能。TʌT不好意思我错了
- volatile可以保证原子性吗
- vue-cli使用swiper4在ie以及safari报错
- Centos7 修改、更换源
- Java中构造方法的执行顺序
- 三个月备战,终获阿里offer
- linux jdk1.8 32位下载永久地址,ubuntu,centos,java
- Silverlight中使用Timer的方法
- 立体栅格地图_具有立体效果的地图制作
- matlab 汉字是方块,linux下Matlab 2020中文字体方框问题解决方法
- 四、vue 项目使用高德地图画面(多边形)
- 感悟员工和公司之间的情感关系
- android 仿飞猪日历,vue 日期选择 类似飞猪
- certbot申请通配符域名证书
热门文章
- 工程地质计算机应用百度云,工程地质计算机应用
- 爬虫技术:携程爬虫阳光问政数据
- java-php-python--数字相册管理系统-点赞演示2021计算机毕业设计
- 这颗“洋葱”要上市了,低调盈利2亿元能跟上跨境电商队伍么?
- 非全研究生业余研究:利用十一假期训练了室内定位模型
- 关于python语言数值操作符_下列哪种物质是体内硫酸基的提供者
- python黑科技脚本_利用Python实现FGO自动战斗脚本,再也不用爆肝啦~
- Linux中安装苹果系统
- ORACLE EBS常用表及查询语句(二)
- UOS安装 MySQL5.7