IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> systemctl命令和配置整理 -> 正文阅读

[系统运维]systemctl命令和配置整理

systemctl命令和配置整理

systemctl与service的区别

Linux 服务管理的两种方式 servicesystemctlsystemctl 基本上是的更强大的版本 service

service

service 命令其实是去/etc/init.d 目录下,去执行相关程序,init.d 目录包含许多系统各种服务的启动和停止脚本。当 Linux 启动时,会寻找这些目录中的服务脚本,并根据脚本的 run level 确定不同的启动级别。

systemctl

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

systemctl命令

# 启动
systemctl start name.service
# 停止
systemctl stop name.service
# 重启
systemctl restart name.service
# 查看状态
systemctl status name.service
# 禁止自动和手动启动
systemctl mask name.service
# 取消禁止
systemctl unmask name.service
# 查看某服务当前激活与否的状态:
systemctl is-active name.service
# 查看所有已经激活的服务:
systemctl list-units --type service
# 查看所有服务:
systemctl list-units --type service --all
# 设定某服务开机自启,相当于chkconfig name on
systemctl enable name.service
# 设定某服务开机禁止启动:相当于chkconfig name off
systemctl disable name.service
# 查看所有服务的开机自启状态,相当于chkconfig --list
systemctl list-unit-files --type service
# 用来列出该服务在哪些运行级别下启用和禁用:chkconfig –list name
ls /etc/systemd/system/*.wants/name.service
# 查看服务是否开机自启:
systemctl is-enabled name.service
# 列出失败的服务
systemctl --failed --type=service
# 开机并立即启动或停止
systemctl enable --now postfix
systemctl disable --now postfix
# 查看服务的依赖关系:
systemctl list-dependencies name.service
# 杀掉进程:
systemctl kill unitname
# 重新加载配置文件
systemctl daemon-reload
# 关机
systemctl halt
systemctl poweroff
# 重启:
systemctl reboot
# 挂起:
systemctl suspend
# 休眠:
systemctl hibernate
# 休眠并挂起:
systemctl hybrid-sleep

服务单元文件目录

  • /usr/lib/systemd/system/:每个服务最主要的启动脚本的配置放在这,有点类似以前的/etc/init.d
  • /run/systemd/system/:系统执行过程中所产生的服务脚本所在目录,这些脚本的优先级要比/usr/lib/systemd/system/高;
  • /etc/systemd/system/:管理员根据主机系统的需求所创建的执行脚本所在目录,执行优先级比/run/systemd/system/

服务单元文件类型

.service(一般服务类型):主要是系统服务,包括服务器本身所需要的本机服务以及网络服务,比较经常被使用到的服务大多是这种类型,是最常见的类型;

.socket(内部程序数据交换的插槽服务):使用 socket 类型的服务一般是比较不会被用到的服务,因此在开机时通常会稍微延迟启动的时间。一般用于本机服务比较多,例如我们的图形界面很多的软件都是通过 socket 来进行本机程序数据交换的行为;

.target(执行环境类型):其实是一群unit的集合,例如 multi-user.target 其实就是一堆服务的集合;

.mount(文件系统挂载相关的服务):例如来自网络的自动挂载、NFS文件系统挂载等与文件系统相关性较高的程序管理;

.path(监测特定文件或目录类型):某些服务需要监测某些特定的目录来提供序列服务,例如最常见的打印服务,就是通过监测打印序列目录来启动打印功能,这时就得要 .path 的服务类型支持;

.timer(循环执行的服务):这个东西有点类似 anacrontab,不过是由systemd主动提供的,比 anacrontab 更加有弹性。

服务单元文件格式

  1. [Unit]:定义与Unit类型有关的通用选项,用于提供 Unit 的描述信息、Unit 行为及依赖关系等;
  2. [Service],[Socket],[Timer],[Mount],[Path]等等:不同单元文件类型就得要使用相对应的设置项目,这个项目主要规范服务启动的脚本、环境配置文件文件名、重新启动的方式等等;
  3. [Install]:定义由 systemctl enable 以及 systemctl disable 命令在实现服务启用或禁用时用到的一些选项;
  4. # 开头的行后面的内容会被认为是注释;
  5. 相关布尔值,1yesontrue 都是开启,0noofffalse 都是关闭;
  6. 时间单位默认是,所以要用毫秒(ms)分钟(m)等须显式说明;
  7. 连词号 - ,表示抑制错误,即发生错误的时候不影响其他命令的执行。

Unit选项

可选项描述
Description对当前服务的简单描述
Documentation当前服务的文档地址
After可以指定在哪些服务之后进行启动,仅是说明服务启动的顺序而已
Before可以指定在哪些服务之前进行启动,仅是说明服务启动的顺序而已
Requires可以指定服务强依赖于哪些服务(一旦所依赖的服务异常,当前的服务也随之停止)
Wants可以指定服务弱依赖于哪些服务(即使所依赖的服务的启动情况不影响当前的服务是否启动)
Conflicts项目后面接的服务如果有启动,这个 Unit 本身就不能启动,若 Unit 有启动,则此项目后的服务就不启动

Service选项

可选项描述
Environment指定环境变量配置
EnvironmentFile指定环境变量配置文件
ExecStart指定服务启动时执行的命令或脚本
ExecStartPre指定服务启动前执行的命令或脚本
ExecStartPost指定服务启动后执行的命令或脚本
ExecStop指明停止服务要运行的命令或脚本
ExecStopPost指定服务停止之后执行的命令或脚本
RestartSec指定服务在重启时等待的时间,单位为秒
ExecReload指明重启服务要运行的命令或脚本
Restart当设定 Restart=1 时,则当次 daemon 服务意外终止后,会再次自动启动此服务,具体看下列类型
PrivateTmp设定为 yes 时,会在生成 /tmp/systemd-private-UUID-NAME.service-XXXXX/tmp/ 目录
KillMode指定停止的方式,具体见下面
Restart指定重启时的类型,具体见下面
Type指定启动类型,具体见下面

Type的可选值

可选值描述
simple指定ExecStart字段的进程为主进程
forking指定以fork() 子进程执行ExecStart字段的进程
oneshot执行一次
notify启动后发送会发送通知信号通知systemd
idle等其他任务结束后才运行

Restart的可选值

可选值描述
no退出后不会重启
on-success当进程正常退出时(退出码为0) 执行重启
on-failure当进程不正常退出时(退出码不为0) 执行重启
on-abnormal当被信号终止和超时执行重启
on-abort当收到没有捕捉到的信号终止时执行重启
on-watchdog当看门狗超时时执行重启
always一直重启

KillMode可选值

可选值描述
control-group杀掉当前进程中所有的进程
process杀掉当前进程的主进程
mixed主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号
none不杀掉任何进程

Install选项

可选项描述
Alias别名,可使用systemctl command Alias.service
RequiredBy被哪些units所依赖,强依赖
WantedBy被哪些units所依赖,弱依赖
Also安装本服务的时候还要安装别的相关服务

参考示例

[Unit]
Description=A Demo Tomcat Service
After=network.target mysql.service
Requires=mysql.service

[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/java"
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

服务状态

运行状态

  • active(running):正有一只或多只程序正在系统中执行的意思;
  • active(exited):仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行;
  • active(waiting):正在执行当中,不过还需要等待其他的事件才能继续处理;
  • inactive:这个服务目前没有运行;
  • dead:程序已经清除;

启动状态

  • enabled:将在开机时被执行;
  • disabled:在开机时不会被执行;
  • static:不可以自己启动(enable不可),不过可能会被其他的enabled 的服务来唤醒(关联属性的服务);
  • mask:无论如何都无法被启动,因为已经被强制注销(非删除),可通过 systemctlunmask 方式改回原本状态;
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 21:17:28  更:2022-10-08 21:18:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:16:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码