systemctl系统服务管理
systemctl系统服务管理
- systemctl简介
- systemctl的管理单位-unit
- 更新systemd
- systemctl管理service
- service服务文件基本格式
- 自定义service文件
- 查看开机启动列表
- 设置开机启动
- 取消开机启动
- 启动服务
- 关闭服务
- 重启服务
- 重新加载配置
- 查看服务运行的状态
- 检查service是否在启动状态
- 检测unit单元是否为自动启动
- 注销一个服务(service)/冻结服务
- 取消注销服务(service)/解冻服务
- 显示单元的手册页(前提是由unit提供)
- 重新载入整个systemd的系统配置并扫描unit文件的变动
- systemctl查看类操作
- 查看指定服务的依赖关系
- 列出服务
- 列出所有已经加载的systemd `units`
- 查看是否存在某个服务
- `列出`指定状态的`服务`
- 列出活跃(`active`)状态的服务(运行或退出)
- 列出正在运行(`runing`)状态的服务
- 列出所有`enabled`状态的服务
- 列出所有`disabled`状态的服务
- 列出错误的服务/列出状态为`failed`的服务
- 查看systemd资源使用率
- systemctl管理`target`
- `multi-user.target`--文本界面的Linux系统
- 将`图形界面`临时切换到`文本界面`
- `graphical.target`--图形化界面的Linux系统
- 将`文本界面`临时切换到`图形化界面`
- 查看`下次启动时`加载的默认`target`
- 永久设置`下次启动时`加载的默认`target`
- `loginctl`---`systemd登录控制管理器`
- 查看当前用户是否拥有执行systemd的权限
- 查看当前用户的systemd配置信息
- 查看用户的systemd的权限
- 开启用户的systemd权限
- 以普通用户执行systemd
systemctl简介
RHEL6版本及以前,采用的第一个进程都是init.第一个进程非常重要,因为第一个进程要负责后面所有进程的启动,后面其他进程能否启动成功取决于系统能不能正常运行.
通过init进程启动的后续进程都是串行启动的,串行启动就意味着速度慢.
Centos7以后系统默认使用systemctl管理系统服务,采用第一个进程叫做systemd.
该进程相比init来说,采用并行启动后续进程,并行启动意味着速度快.
systemctl的管理单位-unit
systemd管理的内容不仅service,systemd管理的单位是unit,service只是unit的一种.
我们重点关心service和target
更新systemd
# 更新systemd
yum upgrade systemd -y
systemctl管理service
service服务文件基本格式
服务文件存放在/usr/lib/systemd/system目录
service参数详解: https://blog.csdn.net/stone_fall/article/details/108630115
NetworkManager的文件示例
# 查看NetworkManager的service文件
[root@c8 ~]# cat /usr/lib/systemd/system/NetworkManager.service
[Unit]
# 定义的描述
Description=Network Manager
Documentation=man:NetworkManager(8)
# 依赖服务
Wants=network.target
# 在network-pre.targe启动完成后启动--前置条件
After=network-pre.target dbus.service
# 启动后启动的unit--后置条件
Before=network.target network.service[Service]
# 类型
Type=dbus
BusName=org.freedesktop.NetworkManager
# 需要加载的内容
ExecReload=/usr/bin/busctl call org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager Reload u 0
#ExecReload=/bin/kill -HUP $MAINPID
# 需要启动的程序
ExecStart=/usr/sbin/NetworkManager --no-daemon
Restart=on-failure
# NM doesn't want systemd to kill its children for it
# 意思是以进程方式关闭
KillMode=process
# 兼容性
CapabilityBoundingSet=CAP_NET_ADMIN CAP_DAC_OVERRIDE CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_MODULE CAP_AUDIT_WRITE CAP_KILL CAP_SYS_CHROOT
# 系统保护
ProtectSystem=true
# 保护家目录
ProtectHome=read-only# We require file descriptors for DHCP etc. When activating many interfaces,
# the default limit of 1024 is easily reached.
LimitNOFILE=65536[Install]
# 定义service放在哪个target里面
WantedBy=multi-user.target
# 服务的别名
Alias=dubs-org.freedesktop.NetworkManager.service
Also=NetworkManager-dispatcher.service# We want to enable NetworkManager-wait-online.service whenever this service
# is enabled. NetworkManager-wait-online.service has
# WantedBy=network-online.target, so enabling it only has an effect if
# network-online.target itself is enabled or pulled in by some other unit.
Also=NetworkManager-wait-online.service
自定义service文件
服务文件存放在/usr/lib/systemd/system目录
[Unit]
# 定义的描述
Description=Network Manager
[Service]
# 类型
Type=notify
# 以指定用户运行
User=user1
Group=user1
# 工作目录
#WorkingDirectory=/usr/bin/
# 需要启动的程序
ExecStart=/usr/bin/test.sh &
# 服务停止时的命令
ExecStop=killall test.sh
# 需要加载的内容
ExecReload=/bin/kill -HUP $MAINPID
# 是否自动重启
Restart=always
# 重启间隔时间
RestartSec=2s
[Install]
# 如果想要执行enable,必须写Install的内容
## 一般情况下都写multi-user.target
WantedBy=multi-user.target
查看开机启动列表
# systemctl list-unit-files |grep 系统服务名
[root@localhost ~]# systemctl list-unit-files | grep firewalld
firewalld.service disabled
设置开机启动
systemctl在enable、disable、mask子命令里面增加了–now选项,可以激活同时启动服务,激活同时停止服务等。
设置开启自启动就是把service文件
从/usr/lib/systemd/system/
创建一个软链接到/etc/systemd/system/multi-user.target.wants/
;
其中[Install]
字段决定了,启动服务文件链接到/etc/systemd/system/
的哪个target
目录下.
# 设置开机启动并现在启动
## 相当于同时执行了systemctl start 服务名
systemctl enable --now firewalld# 查看服务启动状态
root@localhost ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)Active: active (running) since 日 2021-09-05 23:12:15 CST; 8s agoDocs: man:firewalld(1)Main PID: 31773 (firewalld)CGroup: /system.slice/firewalld.service└─31773 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid9月 05 23:12:14 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
9月 05 23:12:15 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
取消开机启动
# 取消开机启动并现在就停止服务
systemctl disable --now firewalld
## 查看服务状态是否停止
[root@localhost ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: man:firewalld(1)9月 05 23:06:15 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
9月 05 23:06:16 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
9月 05 23:06:31 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewall daemon...
9月 05 23:06:33 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewall daemon.# 查看启动列表
[root@localhost ~]# systemctl list-unit-files |grep firewalld
firewalld.service disabled
启动服务
# 启动服务
systemctl start firewall
关闭服务
# 停止服务
systemctl stop firewall
重启服务
# 重启服务
systemctl restart 服务名
重新加载配置
# 重新加载配置
systemctl reload 服务名
查看服务运行的状态
# 查看服务状态
systemctl status 服务名
检查service是否在启动状态
写脚本是判断服务器是否启动很管用
# systemctl is-active 服务名
systemctl is-active NetworkManager
# active
检测unit单元是否为自动启动
写脚本时判断服务器是否开机自启很管用
# systemctl is-enabled 服务名
systemctl is-enabled firewalld
# enabled
注销一个服务(service)/冻结服务
systemctl mask 是注销服务的意思。
注销服务意味着:
该服务在系统重启的时候不会启动
该服务无法进行做systemctl start/stop操作
该服务无法进行systemctl enable/disable操作
systemctl mask firewalld
取消注销服务(service)/解冻服务
# 取消注销服务(service)/解冻服务
systemctl unmask firewalld
显示单元的手册页(前提是由unit提供)
systemctl help
重新载入整个systemd的系统配置并扫描unit文件的变动
# 重载改动过的服务
systemctl daemon-reload
systemctl查看类操作
查看指定服务的依赖关系
# 查看指定服务的倚赖关系
systemctl list-dependencies sshd
列出服务
列出所有已经加载的systemd units
# 列出所有已经加载的systemd units
systemctl
systemctl | grep docker.service
查看是否存在某个服务
# 列出所有service
systemctl list-units --type=service
systemctl --type=service# 查看是否存在某个服务
systemctl --type=service|grep 服务名
列出
指定状态的服务
列出活跃(active
)状态的服务(运行或退出)
# 列出所有active状态(运行或退出)的服务
systemctl list-units --type=service --state=active
列出正在运行(runing
)状态的服务
# 列出正在运行(runing)状态的服务
systemctl list-units --type=service --state=running
列出所有enabled
状态的服务
# 列出所有enabled状态的服务
systemctl list-unit-files --state=enabled
systemctl --state=enabled
列出所有disabled
状态的服务
# 列出所有disable状态的服务
systemctl list-unit-files --state=disabled
systemctl --state=disabled
列出错误的服务/列出状态为failed
的服务
# 列出错误的服务
systemctl --type service --state failed# 列出所有正在运行或failed状态的服务
systemctl list-units --type service --state running,failed
systemctl --type service --state running,failed
查看systemd资源使用率
systemd-cgtop
systemctl管理target
target是一个box(盒子),装了很多service(服务),可以理解为一组service(服务).
tartget是由服务组成的一类启动目标,systemd可以设置启动目标.
如果systemd指定了一个target作为启动目标,那么下次启动的时候就会启动target里面的所有服务.
multi-user.target
–文本界面的Linux系统
tty0 和 tty1 默认是图形界面,临时切换文本界面后,tty0和tty1变成文本界面了
将图形界面
临时切换到文本界面
systemctl isolate multi-user.target
# 需要等待几分钟
graphical.target
–图形化界面的Linux系统
将文本界面
临时切换到图形化界面
systemctl isolate graphical.target
# 需要等待几分钟
查看下次启动时
加载的默认target
systemctl get-default
永久设置下次启动时
加载的默认target
# 永久设置图形化界面启动
systemctl set-default graphical.target
# 永久设置文本界面启动
systemctl set-default multi-user.target
loginctl
—systemd登录控制管理器
systemd登录控制管理器
查看当前用户是否拥有执行systemd的权限
# 查看当前用户是否允许执行systemd
[cesu-c8 devops ~]$ loginctl
SESSION UID USER SEAT TTY 9 0 root # 查看哪些用户可以执行systemd
[cesu-c8 devops ~]$ loginctl list-users UID USER 0 root
1001 devops
2 users listed.
查看当前用户的systemd配置信息
[cesu-c8 devops ~]$ loginctl show-user
查看用户的systemd的权限
[cesu-c8 devops ~]$ loginctl user-status devops
devops (1001)Since: Tue 2021-11-02 19:58:07 CST; 1h 37min agoState: activeSessions: *7
开启用户的systemd权限
如果用户没有systemd权限,需要执行这个命令开启systemd权限,
否则做的systemd操作是不会生效的
loginctl enable-linger
以普通用户执行systemd
# 创建普通用户的systemd目录来存放service文件
mkdir ~/.config/systemd/user -p# 将service文件拷贝到~/.config/systemd/user目录# 普通用户执行systemd重新加载systemd配置
systemctl --user daemon-reload# 普通用户设置service文件开机自启
systemctl --user enable --now 文件名.service
systemctl系统服务管理相关推荐
- Linux 系统服务管理器(初始化系统/init system) -- systemd 及命令 systemctl 的详细介绍
文章目录 一.系统服务管理器 systemd (一)systemd 的特性 (二)systemd 与 传统 init 系统的区别 (三)systemd 的目录和文件 (四)systemd 的 Unit ...
- Linux 系统服务管理(启动服务/停止服务/重启服务)的命令 - chkconfig/service/systemctl
文章目录 一.使用命令 chkconfig 管理系统服务 (一)命令介绍 二.使用命令 service 管理系统服务 (一)命令介绍 (二)命令用法 1.启动服务 2.停止服务 3.重启服务 4.查看 ...
- Linux日常运维管理技巧(三)iptables规则备份和恢复、firewalld的9个zone、任务计划cron、chkconfig系统服务管理、添加服务命令、systemctl管理服务
目录 Linux防火墙-netfilter iptables规则备份和恢复 Linux防火墙-firewalled firewalld的9个zone firewalld关于zone的操作 firewa ...
- systemd系统服务管理详解
/lib/systemd/system 系统服务管理,开机启动,无需登录用户 /usr/lib/systemd/system 用户服务管理,用户登录后自动启动 1.systemd的 ...
- 【CentOS 7笔记46】,crondtab任务计划和chkconfig系统服务管理#
2019独角兽企业重金招聘Python工程师标准>>> shallow丿ove Linux任务计划 crontab -u.-e.-l.-r 格式:分 时 日 月 周 user com ...
- linux 下的 service 和systemctl 服务管理方式
linux 下的 service 和systemctl 服务管理方式 man service 得到:执行一个system V 风格的启动脚本 service - run a System V ini ...
- 项目管理工程师:第二章信息系统服务管理
1.需要掌握的知识点 信息系统服务业的内容,主要是有关信息系统集成.工程监理方面的知识 我国的信息系统服务管理体系 IT审计.IT运营与服务的基本概念 信息系统集成资质管理和信息系统工程监理资质管理 ...
- 项目管理学习笔记二:信息系统服务管理
项目管理学习笔记二:信息系统服务管理 2010-10-22 09:56:33 标签:信息系统 笔记 项目管理 服务 学习 [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文 ...
- 系统集成项目管理工程师笔记(2)信息系统服务管理
第二课 信息系统服务管理 1.我国现行的集中信息服务管理内容的形成和推进过程 (1)实施计算机信息系统集成资质管理制度 (2)推行项目经理制度 (3)推行信息系统监理制度 2. ...
最新文章
- 大量数据转移_大量数据
- 程序员面试金典 - 面试题 16.04. 井字游戏(计数)
- html1怎样插入视频,HTML视频教程,第1章 HTML初识
- 与吴恩达并肩战斗,她是颜值爆表的 AI 科学家!
- idea查看多级父类,实现的接口和子类的层次结构图
- mysql远程连接出错
- Docker for mac安装教程及国内镜像加速器配置
- 西边人西说测试,测试蓝本 | 一篇文章看懂什么是测试,测试是干什么的
- 文献阅读(167)NoC神经网络加速器
- Thunderbird 邮件签名三个实现方式
- 很棒的图片浏览器代码,源码研究
- 如何修改Linux的锁屏时间,调整Kali Linux的锁屏时间
- 【promise】什么是promise?
- 阿里云AMD服务器计算型实例规格族c6a实例CPU网络收发包云盘IOPS详解
- 【整车静态电流测试解决方案】
- 工作流程管理软件的系统架构与功能
- 车载导航系统软件测试,详解车载导航常见故障诊断及检测维修方法
- 国产3D打印数据准备软件重磅发布新版本,助力2万用户效率提升
- https://bbs.csdn.net/topics/60370072
- 荣耀猎人游戏本什么时候发布 荣耀猎人游戏本配置曝光
热门文章
- 连接Win10 的热点后提示没有网络
- 谷歌32位安装包_安卓12欲停止32位支持|瑞幸月内美股退市|一加新机或用挖孔双前摄...
- 2021-11-15 数据结构与算法简介
- 运营商掀窄带物联网投资热 智慧城市商机涌动
- 【数据结构】概述 - 逻辑结构与物理结构 - 附练习题
- Home Inventory for Mac(房屋库存信息整理软件)
- 小程序开发选择收货地址的交互实现
- 解决 Python百度云bypy包 授权失败问题
- Por Costel and the Match Gym - 100923H(经典种类并查集)
- JAVA错题总结收纳