我有 SLES 12,我发现每次重新启动计算机时,该进程rpc.gssd
(即 Kerberos)都会自行启动。我尝试使用禁用它systemctl
,但没有这样的服务。我只能看到一个PID。
pgrep rpc.gssd
我如何挖掘并找到哪个服务触发了该服务?或者如何永久禁用它?
答案1
尝试:
systemctl status PID
你应该看到这样的东西:
$ systemctl status 16736
● salt-master.service - The Salt Master Server
Loaded: loaded (/lib/systemd/system/salt-master.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2015-09-10 05:11:21 MSK; 1min 8s ago
Main PID: 16736 (salt-master)
CGroup: /system.slice/salt-master.service
├─16736 /usr/bin/python /usr/local/bin/salt-master
├─16744 /usr/bin/python /usr/local/bin/salt-master
├─16751 /usr/bin/python /usr/local/bin/salt-master
系统控制(1)说:
状态 [模式...|PID...]]
显示有关一个或多个单元的简洁运行时状态信息,后跟日志中的最新日志数据。如果传递了 PID,则显示有关进程所属单元的信息。
答案2
目前,在 SLES 12 及更高版本(可能还有各种 Linux 发行版)上,rpc.gssd 由 systemd 通过“rpc-gssd.service”控制。该服务被视为“静态”(始终在引导期间启动),而不是可配置为“启用”或“禁用”。 (您可以使用“systemctl status rpc-gssd”来验证这一点。)由于它无法“禁用”,因此如果您想阻止它在引导期间启动,则必须“屏蔽”它,例如:
systemctl 掩码 rpc-gssd.service
还有一个“unmask”指令可以将这些东西带回来。
仅供参考,说 rpc.gssd 是 Kerberos 是不正确的。它是 NFS 可以使用 Kerberos 的接口。从技术上讲,它是在 rpc 层实现的,因此我相信其他 RPC 服务也可以通过编码来利用它。但是,我不知道有任何基于 RPC 的服务(NFS 除外)可以这样做。 nfs-utils源码包提供了rpc.gssd。