systemd使用

ownlate ownlate     2022-10-08     567

关键词:

systemd 是 Linux 下的一款系统和服务管理器,兼容 SysV ,Upstart和 LSB 的启动脚本。在CentOS 7中成为默认的服务管理器。

#CentOS 5: SysV init
#CentOS 6: Upstart
#CentOS 7: Systemd

 

systemd 的特性有:

  • 支持并行化任务;
  • 同时采用 socket 式与D-Bus总线式激活服务;
  • 按需启动守护进程(daemon);
  • 利用 Linux 的 cgroups监视进程;
  • 支持快照和系统恢复;
  • 维护挂载点和自动挂载点;
  • 各服务间基于依赖关系进行精密控制。

 

systemd核心概念:unit

systemd引入了一个新的概念,叫做unit,所有可用的单元文件存放在 /usr/lib/systemd/system/ 和 /etc/systemd/system/ 目录。

unit类型:

系统服务(.service):.service, 用于定义系统服务;

挂载点(.mount):.mount,定义文件系统挂载点;

sockets(.sockets) :.socket, 用于标识进程间通信用的socket文件;

系统设备(.device):.device, 用于定义内核识别的设备;

交换分区(.swap): .swap, 用于标识swap设备;

文件路径(.path):.path,用于定义文件系统中的一个文件或目录;

启动目标(.target):.target,用于模拟实现“运行级别”;

系统快照(.swap):.swap, 用于标识swap设备;

自动挂载点(.automount):.automount,文件系统的自动挂载点;

 

systemd的主要命令是systemctl。该命令可用于查看系统状态和管理系统及服务。

命令格式:

systemctl [OPTIONS...] COMMAND [NAME...]?

 

显示系统状态:

 systemctl status?

 

查看激活的单元:

systemctl | systemctl list-units?

 

查看失败的单元

systemctl --failed?

 

服务管理:

启动服务:
systemctl start name.service  #.service可以不加
关闭服务:
systemctl stop name.service
查看服务状态:
systemctl status name.service
重启服务:
systemctl restart name.service
条件式重启:
systemctl try-restart name.service
重载或重启服务:
systemctl reload-or-restart name.service
重载或条件式重启服务:
systemctl reload-or-try-restart name.service
查看所有已激活的服务:
systemctl list-units --type service
查看所有服务:
systemctl list-units --type service --all
查看某服务当前激活与否状态:
systemctl is-active name.service
设置服务开机启动:
systemctl enable name.service
禁止服务开机启动:
systemctl disable name.service
查看服务是否开机启动:
systemctl is-enabled name.service
查看所有服务是否开机启动:
systemctl list-unit-files --type service 
禁止设为开机启动:
systemctl mask name.service
取消禁止设为开启启动:
systemctl unmask name.service
查看服务启动依赖关系:
systemctl list-dependencies name.service?

 

在RHEL/CentOS 5/6 中,更改系统默认的启动运行级别的方式是编辑/etc/inittab,systemd 是向前兼容的,那么systemd 的运行级别为:

runlevel0.target, poweroff.target
runlevel1.target, rescue.target
runlevel2.target, multi-user.target
runlevel3.target, multi-user.target
runlevel4.target, multi-user.target
runlevel5.target, graphical.target
runlevel6.target, reboot.target?

 

运行级别切换:

systemctl isolate name.target
查看当前默认运行级别:
systemctl get-default
修改默认级别:
systemctl set-default name.target?

 

电源管理:

关机:
systemctl halt | systemctl poweroff
重启:
systemctl reboot
 
休眠:
systemctl hibernate
混合休眠模式:(同时休眠硬盘并待机)
systemctl hybrid-sleep?

 

systemd 服务未使用 dbus 接口启动

】systemd服务未使用dbus接口启动【英文标题】:systemdservicenotstartingusingdbusinterface【发布时间】:2015-07-1503:36:02【问题描述】:我正在尝试启动systemd服务usnigdbus服务。我正在关注下面提到的链接的示例5:http://www.freedesktop.org/softwar... 查看详情

使用没有日志的 systemd

】使用没有日志的systemd【英文标题】:usingsystemdwithoutjournal【发布时间】:2015-10-0315:34:28【问题描述】:是否可以使用(r)syslog而不是日志来运行systemd?这可能至少需要(r)syslog守护程序再次侦听/dev/log套接字并另外侦听/run/systemd/jo... 查看详情

使用 gdbus 启动 systemd 服务

】使用gdbus启动systemd服务【英文标题】:Usinggdbustostartasystemdservice【发布时间】:2015-10-0314:58:19【问题描述】:我创建了一个新的systemd服务,我希望能够通过dbus调用来激活它。该服务只是执行一个shell脚本。我在这里定义了服务... 查看详情

如何在dockercentos容器中使用systemd

由于以下几个原因,docker的官方centos镜像中没有提供systemd服务:systemd依赖于CAP_SYS_ADMINcapability.意味着运行Docker容器需要获得–privileged.这不利于一个baseimage;systemd依赖于访问cgroupsfilesystem;systemd有很多并不重要的文件存放在一... 查看详情

宕机时如何使用 Systemd 重启服务? [关闭]

】宕机时如何使用Systemd重启服务?[关闭]【英文标题】:HowtouseSystemdtorestartaservicewhendown?[closed]【发布时间】:2015-05-1121:37:47【问题描述】:在我的服务器上,我使用elasticSearch,它经常出现故障,结果对我的用户来说是500错误。... 查看详情

无法禁用 systemd 服务

】无法禁用systemd服务【英文标题】:Cannotdisablesystemdservice【发布时间】:2015-08-2314:33:36【问题描述】:我一直在使用来自systemd的dbusAPI,并且我一直在使用EnableUnitFiles()函数启用服务,详见此处http://www.freedesktop.org/wiki/Software/syste... 查看详情

systemd与cgroupfs

...cgroup的操作驱动,大多数linux发行版上,默认的驱动都为systemd简单了解到的两个驱动的区别:docker默认的cgroup的驱动为cgroupfs,可通过启动参数native.cgroupdriver=systemd进行修改Kubernetes的默认驱动需要和docker的驱动指定一直,因此在do... 查看详情

systemd使用rc.local说明

...配置的管理(还可以进行开机自启动服务的管理)实际上systemd也是可以直接使用rc.local,使用上很简单,就是添加执行权限,同时添加自己的shell代码就可以了一些说明实际上rc.local添加了执行权限之后,使用的就是rc-local的一个sy... 查看详情

在 systemd 上使用 daphne 运行 django 频道

】在systemd上使用daphne运行django频道【英文标题】:Runningdjangochannelswithdaphneonsystemd【发布时间】:2018-03-2104:43:17【问题描述】:首先,很抱歉这个问题太长了,希望你们中的一些人对此有耐心。TL;DR:如何在systemd中正确加载django... 查看详情

ubuntu17.04使用systemd设置开机启动

ubuntu从16.04开始不再使用initd管理系统,改用systemd。然而systemd很难用,刚开始接触有点烦,改变太大,跟之前的完全不同。吐槽完开始正题:使用systemd设置开机启动为了像以前一样,在/etc/rc.local中设置开... 查看详情

与仅使用 systemd 相比,我从 JSVC 获得啥好处?

】与仅使用systemd相比,我从JSVC获得啥好处?【英文标题】:WhatbenefitdoIgetfromJSVCoverjustusingsystemd?与仅使用systemd相比,我从JSVC获得什么好处?【发布时间】:2015-05-0718:37:29【问题描述】:Tomcat文档describes编译和安装JSVC的过程,可... 查看详情

如何在debian上使用systemd管理系统

参考技术A检查你的Linux系统使是否使用Systemd服务如果你的Linux发行版是否使用systemd还不能确定,打开一个终端窗口,运行以下命令。这说明在Linux系统上你systemd的版本号:systemd-version分析引导过程该systemd-analyze命令允许你查看... 查看详情

uos操作系统-使用systemd管理系统服务(代码片段)

UOS操作系统-使用Systemd管理系统服务目录前言使用Systemd管理系统服务systemd概述服务管理电源管理日志管理主机信息管理系统语言管理时间管理登录管理系统错误排查使用journalctl查看内核和应用错误使用coredumpctl查看应用崩溃错... 查看详情

centos7下的systemd管理

systemd简介Systemd是由红帽公司的一名叫做LennartPoettering的员工开发,systemd是Linux系统中最新的初始化系统(init),它主要的设计目的是克服SysV固有的缺点,提高系统的启动速度,systemd和upstart是竞争对手,ubantu上使用的是upstart的... 查看详情

使用 systemd 要求并启动 podman 网络接口

】使用systemd要求并启动podman网络接口【英文标题】:Requireandstartpodmannetworkinterfaceusingsystemd【发布时间】:2020-10-0320:09:54【问题描述】:我有一个由systemd管理的主机服务,它侦听Podman默认网络接口(cni-podman0),以便容器可以与之... 查看详情

linux的systemd使用语法

语法:systemctl[command][unit](配置的应用名称)command解释示例start启动指定的unitsystemctlstartnginxstop关闭指定的unitsystemctlstopnginxrestart重启指定unitsystemctlrestartnginxreload重载指定unitsystemctlreloadnginxenable系统开机时自动启动指定un 查看详情

无法在 ubuntu docker 容器上使用 systemd [关闭]

】无法在ubuntudocker容器上使用systemd[关闭]【英文标题】:Notabletousesystemdonubuntudockercontainer[closed]【发布时间】:2017-01-0307:26:03【问题描述】:问题systemd似乎在UbuntuDocker容器中不活动或不可用。设置我正在运行来自ubuntu:16.04和ubuntu... 查看详情

ubuntu17.04使用systemd设置开机启动

ubuntu从16.04开始不再使用initd管理系统,改用systemd。然而systemd很难用,刚开始接触有点烦,改变太大,跟之前的完全不同。吐槽完开始正题:使用systemd设置开机启动为了像以前一样,在/etc/rc.local中设置开... 查看详情