我有一个程序,我想确保它只由launchd(作为一个守护进程)和&如果用户直接启动它,它应该终止(双击Finder,终端)。有没有一种很好的方法来实现这个目标?
答案 0 :(得分:1)
假设您是设置启动plist的人,指定如何启动您的程序,您可以使用您自己的密钥(例如“I_CAME_FROM_LAUNCHD”)向该plist添加EnvironmentVariables
条目,然后让您的程序使用getenv
(或NSProcessInfo
,对于Objective-C)检查是否存在该环境变量。如果程序从Finder启动,该变量将不存在,您可以终止程序。