杀死启动守护进程

时间:2013-03-15 11:23:03

标签: objective-c macos cocoa

我的应用程序运行启动守护程序,因此主应用程序可以与iTunes同步启动。 守护程序运行没有问题。

但是,当我在登录时禁用守护进程时,守护程序已经启动并继续打开主应用程序,直到用户重新启动计算机并且守护程序关闭。

如何终止守护程序进程?因为它是一个没有界面的流程,所以应用程序不是NSRunningApplication


修改

值得一提的是,该应用程序必须使用沙盒。

1 个答案:

答案 0 :(得分:0)

好的,通过从守护程序服务列表中删除帮助程序应用程序,应用程序会自动被杀死。


代码

- (void)setLaunchHelperAtLogin:(BOOL)launchHelperAtLogin {
    if (launchHelperAtLogin != self.launchHelperAtLogin) {
        // Creating helper app complete URL
        NSURL *bundleURL = [[NSBundle mainBundle] bundleURL];
        NSURL *url = [bundleURL URLByAppendingPathComponent:kHelperPath];

        // Registering helper app
        OSStatus status = LSRegisterURL((__bridge CFURLRef)url, true);
        if (status != noErr) {
            NSError *error = [NSError errorWithDomain:NSOSStatusErrorDomain code:status userInfo:nil];
            NSLog(@"%@", error);
        }

        // Setting login
        if (!SMLoginItemSetEnabled((CFStringRef)kHelperBundleIdentifier, launchHelperAtLogin)) {
            NSLog(@"SMLoginItemSetEnabled failed!");
        }
    }
}
相关问题