我有一个程序,我想确保它仅由 launchd(作为守护程序)启动,并且如果用户直接启动它(双击 Finder、终端),它应该终止。有没有一种巧妙的方法可以做到这一点?
问问题
20 次
1 回答
1
假设您是设置指定如何启动程序的启动 plist 的人,您可以EnvironmentVariables
使用自己的密钥(例如“I_CAME_FROM_LAUNCHD”)向该 plist 添加一个条目,然后让您的程序检查该环境的存在变量使用getenv
(或NSProcessInfo
,用于Objective-C)。如果程序从 Finder 启动,该变量将不存在,您可以终止程序。
于 2015-04-16T14:30:51.853 回答