killall & pkill 找不到 运行 属于我的守护进程
killall & pkill can't find a daemon that is running and belongs to me
我经常发现鼠标无法滚动。解决方法是通过 Activity 监视器退出 Logi Options Daemon。我想使用 shell 脚本来执行此操作,以便我可以分配热键,但我不知道如何按名称终止进程。
➜ ~ killall "Logi Options Daemon"
No matching processes belonging to you were found
➜ ~ sudo killall "Logi Options Daemon"
Password:
No matching processes were found
➜ ~ sudo killall -9 "Logi Options Daemon"
No matching processes were found
➜ ~ pkill -f "Logi Options Daemon"
➜ ~ pgrep -f "Logi Options Daemon"
如果我运行 ps | grep "Logi Options Daemon"
,我每次都会得到不同的PID,但是Activity Moniter 中的PID 并没有改变。将 kill
与来自 Activity 监视器的 ID 一起使用,确实会终止进程,但违背了使用脚本的目的。
如何让这个进程死掉?
根据this blog post from Chris Pennington,程序的实际名称是LogiMgrDaemon
,所以试试:
killall LogiMgrDaemon
您可以在 Activity 监视器中找到此名称,方法是选择进程,打开其信息 window(使用 Command-I 或工具栏中的“I”按钮),并在“打开文件和端口”选项卡下查找二进制名称和路径。
至于您在 运行 ps | grep "Logi Options Daemon"
时看到的内容,您可能只是看到了 grep
过程本身。请注意此处列出的进程中的“grep”:
$ ps | grep "No Such Daemon"
36074 ttys006 0:00.00 grep No Such Daemon
这是 ps | grep
的一个极其常见的问题,这几乎是 pgrep
作为一个单独的程序存在的全部原因。
我经常发现鼠标无法滚动。解决方法是通过 Activity 监视器退出 Logi Options Daemon。我想使用 shell 脚本来执行此操作,以便我可以分配热键,但我不知道如何按名称终止进程。
➜ ~ killall "Logi Options Daemon"
No matching processes belonging to you were found
➜ ~ sudo killall "Logi Options Daemon"
Password:
No matching processes were found
➜ ~ sudo killall -9 "Logi Options Daemon"
No matching processes were found
➜ ~ pkill -f "Logi Options Daemon"
➜ ~ pgrep -f "Logi Options Daemon"
如果我运行 ps | grep "Logi Options Daemon"
,我每次都会得到不同的PID,但是Activity Moniter 中的PID 并没有改变。将 kill
与来自 Activity 监视器的 ID 一起使用,确实会终止进程,但违背了使用脚本的目的。
如何让这个进程死掉?
根据this blog post from Chris Pennington,程序的实际名称是LogiMgrDaemon
,所以试试:
killall LogiMgrDaemon
您可以在 Activity 监视器中找到此名称,方法是选择进程,打开其信息 window(使用 Command-I 或工具栏中的“I”按钮),并在“打开文件和端口”选项卡下查找二进制名称和路径。
至于您在 运行 ps | grep "Logi Options Daemon"
时看到的内容,您可能只是看到了 grep
过程本身。请注意此处列出的进程中的“grep”:
$ ps | grep "No Such Daemon"
36074 ttys006 0:00.00 grep No Such Daemon
这是 ps | grep
的一个极其常见的问题,这几乎是 pgrep
作为一个单独的程序存在的全部原因。