从 terminal/bash 关闭“<app> 意外退出”window
Close "<app> quit unexpectedly" window from terminal/bash
有没有办法从终端或 bash 脚本close/kill“ 意外退出”window?进程名称是什么?
(不接受 AppleScript 自动化解决方案。)
我不确定苹果是否有相同的核心实用程序,但我也来自 unix 世界。
例如:解决方案是通过名称查找进程 ID。在我的 linux 系统上,我可以使用以下命令查找进程 ID...
ps -aux
另一种变体是 top。两者都提供了大量信息,我必须使用 grep 过滤代码。
之后,我将通过 cut 或 sed 过滤字符串。
最后但同样重要的是 kill 命令。
脚本应该看起来像这样...
#!/bin/sh
PNAME="< app> quit unexpectedly"
ps -aux | grep "$PNAME" | cut -d" " -f2 | kill
但请注意,如果您不知道如何使用此脚本,可能会造成巨大的损害。
老实说,我永远不会使用这样的东西,而是手动执行 kill..
您可以通过以下方式禁用它首先出现:
defaults write com.apple.CrashReporter DialogType none
其他可能的值是 developer
†(显示所有进程的堆栈跟踪)和 crashreport
(默认值)。
这也意味着不会向 Console.app 写入任何条目。对话框本身由 UserNotificationCenter
显示,可以通过以下方式禁用(以及许多其他通知):
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.UserNotificationCenter.plist
一些上下文:
Mach 有一个概念异常端口。每个thread/process都有一个task、process和一个host exception port,发生异常时检查。 CrashReporter 守护程序注册主机异常端口并在没有其他信号处理程序时激活 运行。然后它创建进程的堆栈跟踪和内存映射,并指示 UserNotificationCenter
显示它。默认情况下,它只对 GUI 应用程序这样做。
在 High Sierra 上,我不得不使用 defaults write com.apple.CrashReporter -string "developer"
您可以:
killall UserNotificationCenter
它会杀死 UserNotificationCenter
(它也打开了 windows),所以消息消失了。 (别担心,下一条错误消息会自动再次启动。)
但是,(恕我直言)最好以以下形式使用 osascript
命令:
osascript -l JavaScript <<EOS
... apple-scripting using JavaScript ...
EOS
恕我直言 JavaScript 比 "standard" applescript
.
更容易理解(对于普通程序员)
有没有办法从终端或 bash 脚本close/kill“
(不接受 AppleScript 自动化解决方案。)
我不确定苹果是否有相同的核心实用程序,但我也来自 unix 世界。
例如:解决方案是通过名称查找进程 ID。在我的 linux 系统上,我可以使用以下命令查找进程 ID...
ps -aux
另一种变体是 top。两者都提供了大量信息,我必须使用 grep 过滤代码。 之后,我将通过 cut 或 sed 过滤字符串。 最后但同样重要的是 kill 命令。
脚本应该看起来像这样...
#!/bin/sh
PNAME="< app> quit unexpectedly"
ps -aux | grep "$PNAME" | cut -d" " -f2 | kill
但请注意,如果您不知道如何使用此脚本,可能会造成巨大的损害。
老实说,我永远不会使用这样的东西,而是手动执行 kill..
您可以通过以下方式禁用它首先出现:
defaults write com.apple.CrashReporter DialogType none
其他可能的值是 developer
†(显示所有进程的堆栈跟踪)和 crashreport
(默认值)。
这也意味着不会向 Console.app 写入任何条目。对话框本身由 UserNotificationCenter
显示,可以通过以下方式禁用(以及许多其他通知):
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.UserNotificationCenter.plist
一些上下文:
Mach 有一个概念异常端口。每个thread/process都有一个task、process和一个host exception port,发生异常时检查。 CrashReporter 守护程序注册主机异常端口并在没有其他信号处理程序时激活 运行。然后它创建进程的堆栈跟踪和内存映射,并指示 UserNotificationCenter
显示它。默认情况下,它只对 GUI 应用程序这样做。
在 High Sierra 上,我不得不使用 defaults write com.apple.CrashReporter -string "developer"
您可以:
killall UserNotificationCenter
它会杀死 UserNotificationCenter
(它也打开了 windows),所以消息消失了。 (别担心,下一条错误消息会自动再次启动。)
但是,(恕我直言)最好以以下形式使用 osascript
命令:
osascript -l JavaScript <<EOS
... apple-scripting using JavaScript ...
EOS
恕我直言 JavaScript 比 "standard" applescript
.