如何在Mac上使用pkill
as ?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