【问题标题】:Force quit OS X app强制退出 OS X 应用程序
【发布时间】:2014-12-16 12:02:22
【问题描述】:

如果我知道应用程序/守护进程的名称(出现在活动监视器中的名称),那么强制退出 os x 或守护进程的最佳方法是什么?

我正在使用 Objective C 进行编码。

【问题讨论】:

  • 为什么要强制退出?
  • 您可以使用 PID(进程 ID)杀死,但我不确定您是否可以使用 Objective C 或在您的应用程序中执行此操作。
  • 你可以使用 NSTask 中的 kill 但 NSWorkSpace 应该为大多数用途提供足够的能力,否则所有的 BSD 都在那里。

标签: objective-c xcode macos daemon


【解决方案1】:

您可以使用 Applescript 来做到这一点:

//tell Application to quit
NSAppleScript* restartApp = [[NSAppleScript alloc] initWithSource:@"tell application \"ApplicationName\" to quit"];
[restartApp executeAndReturnError:nil];

如果应用没有响应,您可以尝试

// define command
NSString* appName = @"Finder";
NSString* killCommand = [@"/usr/bin/killall " stringByAppendingString:appName];

// execute shell command
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/bash"];
[task setArguments:@[ @"-c", killCommand]];
[task launch];

这会杀死应用程序。

祝你好运

【讨论】:

  • 如果应用程序或进程没有响应,Apple 脚本将不起作用
  • 是的,你可以,但是NSTaskkillall app_name 会做得更好:)
猜你喜欢
  • 1970-01-01
  • 2012-09-19
  • 2012-12-01
  • 1970-01-01
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 2012-11-03
  • 1970-01-01
相关资源
最近更新 更多