У меня есть программа, и я хочу убедиться, что она была запущена только с помощью запуска (в качестве демона) & он должен завершиться, если пользователь запускает его напрямую (дважды щелкните Finder, terminal). Есть ли отличный способ сделать это?Как обеспечить, чтобы моя работа запускалась через launchd, а не напрямую?
0
A
ответ
1
Предполагая, что вы настраиваете панель запуска, которая указывает, как запускать вашу программу, вы можете просто добавить запись EnvironmentVariables
к этому plist с помощью собственного ключа (например, «I_CAME_FROM_LAUNCHD»), а затем проверить свою программу на наличие этой переменной среды с использованием getenv
(или NSProcessInfo
, для Objective-C). Если программа запускается из Finder, эта переменная не будет присутствовать, и вы можете завершить свою программу.