基本上,我想阻止某些系统进程运行。如果我强制退出它们,它们只会重新启动。我该如何阻止它们启动/重新启动?
在您说我不应该干扰系统进程之前:我完全了解可能产生的后果。
答案1
这取决于进程的启动和重启方式。大多数系统进程由 launchd 处理;如果您想要删除的进程属于这种情况,则需要找到控制它的 launchd 项(它将是 /System/Library/LaunchDaemons 或 /Library/LaunchDaemons 中的 .plist 文件之一)并使用 禁用它sudo launchctl unload /path/to/launchd/item.plist
。如果您想使它永久生效(即即使重新启动也保持禁用状态),请添加 -w 标志:sudo launchctl unload -w /path/to/launchd/item.plist
。以下是查找和关闭 krb5kdc 进程的示例:
# First, find the pid of the running process:
$ ps -axwww | grep [k]rb5kdc
3143 ?? 0:33.38 /usr/sbin/krb5kdc -n
# Now find label of the the launchd item controlling it
$ sudo launchctl list | grep 3143
3143 - edu.mit.Kerberos.krb5kdc
# Now find the .plist file that defines that item label:
$ grep -l edu.mit.Kerberos.krb5kdc /Library/LaunchDaemons/* /System/Library/LaunchDaemons/*
/System/Library/LaunchDaemons/edu.mit.Kerberos.krb5kdc.plist
# Finally, disable the launchd item (permanently):
$ sudo launchctl unload -w /System/Library/LaunchDaemons/edu.mit.Kerberos.krb5kdc.plist