MacOS:su pkill -9“process_name”=抱歉

MacOS:su pkill -9“process_name”=抱歉

如何在Mac上使用pkillas ?su

当我su pkill -9 "RFBEventHelperd"在终端中运行时,我得到了su: Sorry(但作为 sudo 工作)。我正在寻找一种方法来从运行为su.

我的应用程序

我在 MacOS 中使用 SleepWatcher 在醒来时打开屏幕共享应用程序。启动屏幕共享应用程序后,我想终止该进程,因为这会将+RFBEventHelperd返回给 Mac,而不是绑定到在屏幕共享中运行的操作系统。CommandTab

SleepWatcher 运行唤醒脚本如下su

$ su - $user -c "$home/.wakeup"

问题

如何将其放入pkill -9 "RFBEventHelperd"我的脚本中,并让它终止以另一个用户身份运行的进程。

答案1

您正在寻找的形式su如下:

$ su -c pkill -9 "RFBEventHelperd" <user>

在 OSX 上,此表单可能不起作用。在这些情况下,您可能不得不改用sudo

$ sudo -u <user> <cmd>

为了使其无密码运行,您必须在文件中为此创建一个条目/etc/sudoers,并利用 NOPASSWD 功能来执行显式命令,运行原始脚本的用户可以访问执行而无需输入密码。

使用须藤

要在文件中设置规则/etc/sudoers以允许该用户访问执行pkill命令,可以将其添加到/etc/sudoers

%admin ALL=(ALL) NOPASSWD: ALL

这样,shell 脚本就可以在没有任何密码的情况下运行此命令:

$ sudo -u root /usr/bin/pkill -9 "RFBEventHelperd"

笔记:处理/etc/sudoers编辑时,您可以visudo像这样使用:

$ sudo visudo

参考

相关内容