现在绝大多数的Linux系统都在使用systemd-一套程序,旨在管理和互连系统的不同部分。Systemd开始取代初始化现在,它是大多数Linux系统启动时启动的第一个进程。要快速了解一下,您可以运行这样的命令,以验证进程1确实是这样的systemd.在这个系统上,有两个额外的systemd进程当前也在运行。
$ ps -C systemd PID TTY TIME CMD 1 ?00:00:59 systemd< = = =1244年?00:00:00 systemd 54429 ?就是systemd
要查看更多细节,请尝试下面的命令。引号内的空白是为了防止类似这样的相关过程systemd-journald避免出现在名单上
$ ps -ef | grep "systemd " | grep -v grep root 1 0 0 7月17日?/usr/lib/systemd/systemd——system——deserialize 30 gdm 1244 1 0 Jul17 ?/usr/lib/systemd/systemd——user shs 5429 1 0 Jul19 ?就是/usr/lib/systemd/systemd——用户
列出的第一个过程(与——系统)是主要的systemd的过程。第二个和第三个是管理用户(——用户)会议。在本例中,一个与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-userwork
查看或控制systemd服务,使用systemctl命令。你可以使用如下命令查看正在运行的进程:
$ systemctl | head -1;systemctl | grep running | head -11 UNIT LOAD ACTIVE SUB DESCRIPTION process -sys-fs-binfmt_misc. systemctl自动加载活动运行的任意可执行文件格式文件系统杯子。路径加载活动运行CUPS调度程序初始化。scope加载主动运行的System和Service Manager会话-13。scope loaded active running of User shs Session -6的Session 13。scope加载了用户shs Session -c1的Session 6。用户gdm abt -journal-core的Session c1。从coredumpctl消息中创建ABRT问题。运行ABRT内核日志监视器abt -xorg。service loaded active running ABRT Xorg log watcher abtd。运行ABRT自动Bug报告工具帐户-守护进程。service loaded active running Accounts service
我增加了Systemctl | head -1在上面的命令中提供列标题。
为systemd,“UNIT”是指系统知道如何操作和管理的任何资源。要列出那些已启用的,你可以使用如下命令:
$ systemctl list-unit-files——state=enabled | head -15
单位文件状态供应商预置
杯子。路径使使
abrt-journal-core。启用服务使
abrt-oops。启用服务使
abrt-vmcore。启用服务使
abrt-xorg。启用服务使
abrtd。启用服务使
accounts-daemon。启用服务使
atd。启用服务使
auditd。启用服务使
avahi-daemon。启用服务使
蓝牙。启用服务使
chronyd。启用服务使
crond。启用服务使
杯子。服务启用禁用
注意,“启用”并不意味着服务正在运行。“运行”并不一定意味着它是启用的。每一种都有不同的含义。“启用”意味着系统将在下一次引导时运行该服务(无论它现在是否正在运行)。一旦您启用了一个服务,如果您希望它立即运行,您仍然需要手动启动它,或者您可以重新启动系统,它将自动启动。
“运行”状态意味着进程实际上正在运行。如果没有启用,则在重新启动时不会重新启动。
在下面的命令中,我们可以看到web服务已经启用并正在运行:
$ systemctl list-unit-files | head -1;systemctl list-unit-files | grep http UNIT FILE STATE VENDOR预置服务启用禁用< = =启用httpd@。Service disabled禁用httpd。$ systemctl | grep running | grep HTTP httpd。service loaded active running启动Apache HTTP Server< = =运行
你可以通过询问它的状态来查看更多与此服务相关的信息:
$ systemctl status httpd。●httpd服务。service - Apache HTTP Server Loaded: Loaded (/usr/lib/systemd/system/httpd.service;启用;供应商预设:禁用)活动:活动(运行)自Sat 2021年07月17日18:21:44 EDT;Docs: man:httpd.service(8) Main PID: 876 (httpd) Status: "Total requests: 154;空闲/繁忙worker 100/0;请求/秒:0.000204;Bytes served/sec: 0 B/sec" Tasks: 213 (limit: 7072) Memory: 20.3M CPU: 1min 58.761s├─mstein - du(2)——sbin——sbin——mstein - du(3)——mstein - du(3)——mstein - du(3)——mstein - du(3)——mstein - du(3)——mstein - du(3)——mstein - du(3)——mstein - du(3)——mstein - du(3)——mstein - du(3)——mstein - du(3)——mstein - du(3)——mstein - du(3)——mstein - du(3)——mstein - du(3)——mstein - du(4)——mstein - du(3)——mstein - du(4)——mstein - du(3)——mstein - du(4)——mstein - du(4)——mstein - du(4)——mstein - du(4)——mstein - du(4)——mstein - du(4)——mstein - du (4)7月25日00:00:08 dragonfly httpd[876]:服务器配置,监听:端口80
或者,你可以简单地确定一个特定的服务是否活跃和/或启用了以下命令:
$ systemctl is-active httpd。service Active $ systemctl is-enabled httpd服务使
总结
的systemctl命令提供的系统进程的详细信息与ps命令。在哪里ps只列出正在运行的进程,systemctl列出哪些服务是已知的,哪些服务可以被管理systemd服务是否启用。