我有一个简单的终端应用程序,我想在它完成后关闭它(实际上是关闭它打开的终端实例)。
关于如何杀死mac应用程序有很多问题,但似乎没有一个适用于终端mac应用程序。
在程序结束时,我尝试运行以下命令:

NSApplication.sharedApplication().terminate(0)


kill(getppid(), SIGKILL);

但没有一个真的关上窗户。有人能给我指一个正确的方向吗,或者如果这是可能的话?

最佳答案

简单地执行:

exit(0);

... 将立即终止任何mac进程,无论是终端命令行工具还是完整的GUI应用程序。
你不应该在一个GUI应用程序中这样做,因为在退出之前会绕过任何旨在保存用户数据的功能,但这是终端中正确的功能。
只有当命令行工具未在shell中运行时,终端窗口才会关闭。即使如此,如果“外壳退出”被设置为“关闭窗口”或“关闭外壳,如果外壳退出干净”,终端将只关闭窗口。
提供给出口的数字0表示您的工具干净地退出。返回一些其他数字以防止窗口关闭(您应该打印一条错误消息)。

10-08 13:32
查看更多