如今,绝大多数 Linux 系统都在使用 systemd—— 一套旨在管理和互连系统不同部分的程序。 Systemd早在 2014 年就开始替换init进程,现在是大多数 Linux 系统启动时启动的第一个进程。要快速查看,您可以运行这样的命令,以验证进程 1 确实是systemd。在这个系统上,目前还有两个额外的systemd进程正在运行。
$ ps -C systemd
PID TTY 时间 CMD
1 ? 00:00:59 systemd <===
第1244章 00:00:00 系统
54429?00:00:00 系统
要查看更多详细信息,请尝试以下命令。引号内的空白是为了防止systemd-journald等相关进程出现在列表中。
$ ps -ef | grep "systemd" | grep -v grep
根 1 0 0 Jul17 ?00:00:59 /usr/lib/systemd/systemd --system --deserialize 30
gdm 1244 1 0 Jul17 ?00:00:00 /usr/lib/systemd/systemd --user
shs 5429 1 0 Jul19?00:00:00 /usr/lib/systemd/systemd --user
列出的第一个进程(带有--system)是主要的systemd进程。第二个和第三个是管理用户(--user)会话。在这种情况下,一个与 GNOME 显示管理器 ( gdm )相关联,另一个与登录用户相关联。
如果您查看所有正在运行的systemd进程,您可能会看到这些。每个都在管理系统服务中发挥作用。例如,system-journald收集和存储日志数据。
/usr/lib/systemd/systemd
/usr/lib/systemd/systemd-journald
/usr/lib/systemd/systemd-udevd
/usr/lib/systemd/systemd-oomd
/usr/lib/systemd/systemd-resolved
/usr/lib/systemd/systemd-homed
/usr/lib/systemd/systemd-machined
/usr/lib/systemd/systemd-logind
/usr/lib/systemd/systemd-userdbd
/usr/lib/systemd/systemd
系统用户工作
要查看或控制systemd 服务,请使用systemctl命令。您可以使用如下命令查看正在运行的进程:
$ systemctl | 头-1; 系统控制| grep 运行 | 头-11
单元负载 ACTIVE SUB 描述
proc-sys-fs-binfmt_misc.automount 加载主动运行任意可执行文件格式文件系统
cups.path 加载活动运行的 CUPS 调度程序
init.scope 加载活动运行的系统和服务管理器
session-13.scope 加载了用户 shs 的主动运行会话 13
session-6.scope 加载了用户 shs 的活动正在运行的会话 6
session-c1.scope 加载了用户 gdm 的活动正在运行的会话 c1
abrt-journal-core.service 加载主动运行 从 coredumpctl 消息创建 ABRT 问题
abrt-oops.service 加载了主动运行的 ABRT 内核日志观察器
abrt-xorg.service 加载主动运行 ABRT Xorg 日志观察器
abrtd.service 已加载 主动运行 ABRT 自动错误报告工具
account-daemon.service 加载活动运行的帐户服务
我添加了 systemctl | head -1在上面的命令中提供列标题。
对于systemd,“UNIT”一词指的是系统知道如何操作和管理的任何资源。要列出已启用的那些,您可以使用如下命令:
$ systemctl list-unit-files --state=enabled | head -15
单位文件状态供应商预设
cups.path 启用启用
abrt-journal-core.service 启用启用
abrt-oops.service 启用启用
abrt-vmcore.service 启用启用
abrt-xorg.service 启用启用
abrtd.service 启用启用启用
帐户- daemon.service 启用启用
atd.service 启用启用
auditd.service 启用启用启用
avahi-daemon.service 启用启用启用
bluetooth.service 启用启用
chronyd.service 启用启用
crond.service 启用启用
cups.service 启用禁用
请注意,“启用”并不意味着服务正在运行。“运行”并不一定意味着它已启用。每一个都意味着不同的东西。“已启用”表示系统将在下次启动时运行该服务(无论它现在是否正在运行)。启用服务后,如果您希望它立即运行,您仍然需要手动启动它,或者您可以重新启动系统,它会自动启动。
“正在运行”状态意味着该进程实际上正在运行。如果它也未启用,则在您重新启动时它不会重新启动。
在下面的命令中,我们可以看到 Web 服务已启用并正在运行:
$ systemctl list-unit-files | 头-1; systemctl 列表单元文件 | 解析 http
单位文件状态供应商预设
httpd.service 已启用 已禁用 <== 已启用
httpd@.service 禁用 禁用
httpd.socket 禁用 禁用
$ systemctl | grep 运行 | 解析 http
httpd.service 加载 active running Apache HTTP Server <== running
您可以通过询问其状态来查看与此服务相关的更多信息:
$ systemctl status httpd.service
● httpd.service - Apache HTTP 服务器
已加载:已加载(/usr/lib/systemd/system/httpd.service;已启用;供应商预设:已禁用)
活跃:自美国东部时间周六 2021-07-17 18:21:44 起活跃(运行);1 周 1 天前
文档: man:httpd.service(8)
主 PID: 876 (httpd)
状态:“总请求:154;空闲/忙碌的工作人员 100/0;请求/秒:0.000204;字节/秒:0 B/秒”
任务:213(限制:7072)
内存:20.3M
CPU:1 分钟 58.761 秒
C组:/system.slice/httpd.service
├─ 876 /usr/sbin/httpd -DFOREGROUND
├─394234 /usr/sbin/httpd -DFOREGROUND
├─394235 /usr/sbin/httpd -DFOREGROUND
├─394236 /usr/sbin/httpd -DFOREGROUND
└─394237 /usr/sbin/httpd -DFOREGROUND
7 月 25 日 00:00:07 蜻蜓 systemd[1]:重新加载 Apache HTTP 服务器。
7 月 25 日 00:00:08 蜻蜓 httpd[876]:服务器配置,监听:端口 80
或者,您可以使用以下命令简单地确定特定服务是否处于活动状态和/或启用:
$ systemctl is-active httpd.service
积极的
$ systemctl 已启用 httpd.service
启用
相关实战:https://www.yunduoketang.com/article/dajzxjypi.html
https://www.yunduoketang.com/article/zhshkbz.html
https://www.yunduoketang.com/article/jigqslti.html
https://www.yunduoketang.com/article/pojjzyix.html
https://www.yunduoketang.com/article/kejrrjyu.html