我怎样才能找到为什么'rpc.gssd'每次都会启动?

我怎样才能找到为什么'rpc.gssd'每次都会启动?

我有 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。

相关内容