用posix信号对mac应用程序进行老式故障排除

POSIX信号是MACOS核心的UNIX基金会的结果,但是为什么它们在那里,你们怎么还能使用它们呢?...

在活动监视器中有一个神秘的菜单选项,用于向进程发送信号。你有没有想过那是什么?如果您选择它,您将看到像SIGINT和SIGHUP这样的模糊术语,这并不完全清楚。那么这些信号到底是什么呢?

troubleshoot-mac-apps-posix

这些信号是MUOS核心UNIX基金会的结果。终端内置了一些这样的信号:当您按下Ctrl+C来停止正在运行的命令时,您正在发送进程SIGINT来中断并停止当前正在运行的命令。它们是应用程序相互通信的最早方式之一,是旧的“便携式操作系统接口”(POSIX)标准的一部分。

虽然了解系统工作原理的基础知识很好,但您也可以使用这些信号来捕获有关行为不正常的应用程序的信息。

什么是posix公司(posix)?

POSIX是UNIX和UNIX类操作系统的基础标准。在这些兼容系统中,macOS是与Unix兼容的。其核心是Darwin,这是一个Unix核心,其根可以追溯到NeXTSTEP。它本身就是BSD的一个分支,BSD是最初的Unix变体之一。

POSIX确保所有这些操作系统都以预期的方式处理代码,允许开发人员知道他们的代码是真正可移植的。当他们将这些信号中的一个发送到另一台机器上到一个进程时,他们得到的数据是以他们可以预期和处理的格式返回的。这是一个粗略的简化大约40年的计算历史,但你得到了一般的想法。

当与构成macOS的Unix基础的最基本的守护进程通信时,这些信号是最好的。守护进程是后台进程,运行计算机的基本功能——或者用macOS的通俗说法,就是服务。臭名昭著的发现就是一个例子。这是OS X Yosemite 10.10取代了mDNSResponder,这是另一项被认为是导致更新中出现网络问题的服务。

Command Line

根据应用程序接收信号的方式,您可以发送一个退出应用程序以创建所谓的核心转储的信号。核心转储包含有关正在运行的程序的所有当前数据。这些对于不断崩溃的应用程序进行故障排除非常重要。在Mac上,这些转储采用Mach-O文件格式,您可以在名为Xcode的macOS开发环境中读取。大多数用户可能不会对这些做太多,但是如果你对应用程序问题感到沮丧,他们可以帮助发送给开发人员以获得支持。

还有一点经典的计算在这里显示了它的根源。Mach-O文件格式与Mach微内核共享其名称。与BSD一起,这是macOS根的一部分,这两个是基础内核XNU的一部分。Mach没有BSD那么有传奇色彩,所以它并没有受到很多媒体的关注,但它是苹果操作系统区别于其他Unix变体的一部分。

那我怎么用呢?

我们以前都有过这样的经历:你得到一个应用程序的更新,或者下载一个新的应用程序,每次你打开它时它都会挂起。从Apple菜单中打开Force Quit,会看到应用程序显示为没有响应。更糟糕的是,这是一些后台进程拖累你的系统。

Activity Monitor

打开Activity Monitor并单击没有响应的进程。然后转到View(视图)菜单并选择Send signal to process(发送要处理的信号)。将弹出一个菜单,允许您选择要发送到进程的信号选择您的信号,然后按send。

如果您喜欢终端,您将使用您已经熟悉的命令。这个

kill

命令用于停止进程。如果你加上

-s

您可以添加一个数字,向正在杀死的进程发送信号。下面是一个列表,列出了

kill

手册页:

  • 1-HUP(挂断)
  • 2-INT(中断)
  • 3-退出(退出)
  • 6-ABRT(中止)
  • 9-杀戮(不可捕获、不可忽略的杀戮)
  • 15-期限(软件终端信号)

还有一些其他的信号你也可以发送,这些只是最常见的。这里有一个完整的代码列表。

我什么时候用?

既然您知道如何处理POSIX信号,就可以使用它们**净地停止挂起的进程。公平地说,你不会每天都使用这些代码。当与开发人员一起处理一个奇怪的应用程序崩溃时,或者帮助您的sysadmin beta测试您公司的内部应用程序时,这些代码可以帮助您获得所需的信息。

如果应用程序被编码为创建这些转储,那么您将在目录中找到它们

/cores

使之成为在为崩溃或挂起的应用程序获取数据时易于查找的目录。您可以在这里检查并使用

ls -a

命令。这将向您显示该目录中的所有文件,然后您可以使用music命令将它们复制到更易访问的目录中

mv filename destination

.

终端使用

command cd /cores

切换到目录,然后

ls -a

列出内容。只需使用

mv filename /Users/username/Documents

(替换文件名和用户名)。

mackeyboard

如果您是一个长期使用Unix并迁移到Mac的用户,那么还有哪些鲜为人知的特性呢?如果你有兴趣查看一个只使用Mac OS的开源基础的项目,PurrdWin。请在评论中告诉我们这是怎么回事。我们还想知道POSIX信号何时解决了Mac的一个棘手问题。

您以前使用过POSIX信号进行故障排除吗?

图片来源:Dean Drobot/Shutterstock

  • 发表于 2021-03-16 15:08
  • 阅读 ( 198 )
  • 分类:IT

你可能感兴趣的文章

windows虚拟机故障排除

上个月你经历过多少电脑问题?互联网连接不稳定、应用程序崩溃和系统冻结对大多数Windows用户来说都不是陌生的体验。但当这些问题发生时,您是否会很快将这些问题归咎于Windows本身? ...

  • 发布于 2021-03-14 08:17
  • 阅读 ( 267 )

无法在mac上创建windows安装程序?4故障排除提示

...。微软已经让这一过程变得相当简单,但并不总是按计划进行。 ...

  • 发布于 2021-03-15 08:05
  • 阅读 ( 183 )

macbook触控板不工作?4个故障排除提示

... 要查看您的触控板是否有可用的更新,请打开应用程序商店并单击窗口顶部的更新选项卡。 ...

  • 发布于 2021-03-18 06:00
  • 阅读 ( 759 )

mac无法连接到wi-fi?恢复在线的9个步骤

...放在电缆、无绳电话或摄像机、微波炉或任何可能传输电信号的东西附近。一些用户还报告说,关闭蓝牙可能会有所帮助,因为蓝牙信号可能会干扰Wi-Fi。 ...

  • 发布于 2021-03-18 07:41
  • 阅读 ( 206 )

听上去你的mac不工作?轻松解决音频问题

... 有时,配置错误的应用程序或设置会导致音频输出静态,无法更改音量,缺少立体声输出,甚至根本没有输出。以下是解决Mac上声音问题的修复程序列表。 ...

  • 发布于 2021-03-18 16:27
  • 阅读 ( 363 )

如何重新映射mac的功能键并执行任何您想要的操作

...重新映射任务控制键以拍摄屏幕截图,而不是显示活动的应用程序。或者使用Launchpad键打开emoji查看器,或者选择菜单栏日历? ...

  • 发布于 2021-03-20 11:03
  • 阅读 ( 235 )

修复mac上多个显示器的9个故障排除提示

...将无法工作。理想情况下,您希望使从计算机到监视器的信号路径尽可能简单。 ...

  • 发布于 2021-03-21 12:59
  • 阅读 ( 228 )

如何使用apple service diagnostic对mac进行故障排除

...片。CPU、GPU、显示器等方面的其他问题可能是购买新Mac的信号。当你准备好购买时,学习如何在苹果的网站上构建你的完美Mac。 ...

  • 发布于 2021-03-25 02:02
  • 阅读 ( 336 )

对三星smartthings感到沮丧?这是你的选择

... 如果你使用了大量的第三方SmartThings应用程序,你可能会发现缺少一个智能助手。但是如果你的中心只运行一些智能灯和一个安全摄像头,你也许可以从等式中删除中心。 ...

  • 发布于 2021-03-26 08:41
  • 阅读 ( 259 )

空投不起作用?下面是如何修复它

...有可用的更新。如果您没有运行最新版本的macOS,请打开应用程序商店,搜索“macOS”,然后免费下载。 空投发现机 根据苹果的说法,如果你的Mac运行OSXMavericks或更早版本,你必须打开Finder并点击侧边栏中的AirDrop来传输文件。...

  • 发布于 2021-04-03 02:12
  • 阅读 ( 244 )
pmr751
pmr751

0 篇文章

相关推荐