LaunchAgents: запуск приложения от имени пользователя root

247
moscoquera

Я делаю приложение для киоска для OSX. предыдущая версия этого приложения работала на OSX 10.8, но компьютеры обновились, и теперь приложение не работает должным образом. Мне нужно, чтобы пользователь не мог убить процесс. Итак, давайте назовем основное приложение как A. «A» должен иметь возможность запускаться от любого пользователя с правами root, чтобы избежать его уничтожения пользователями. Я использую LaunchAgent для автоматического запуска при входе пользователя. нет проблем с запуском A от имени пользователя root. как Launchctl не может запустить A правильно от имени root. и я не могу запустить A как Демон, потому что он должен быть интерактивным, я использую вторую программу под названием «B», «B» выполняет системный вызов «A» от имени пользователя root, а затем вызывает «exit» чтобы не быть убитым "А", когда "Б" умирает. это работает, если я запускаю B прямо из терминала, но когда Launchctl запускает B и умирает, A тоже умирает. я не знаю, как ее решить, как сохранить «А» в качестве пользователя root, даже когда «В» заканчивается.

вот как Б зовет А:

 int main(int argc, const char * argv[]) {  system("sudo /Path/to/A & exit;");  } system("sleep 15"); // trick that tell launchctl that everything was ok return 0; } 
1

0 ответов на вопрос