Запуск демона в контексте нужной сессии
От: MuPoB  
Дата: 20.02.15 12:09
Оценка:
В состав программы входят 2 демона, один("демон") должен запускаться в контексте рутовой сессии, а другой("агент") в сессии каждого залогиненого пользователя.
Если создать для них файлы *.plist и поместить их в /Library/LaunchDaemons и /Library/LaunchAgents соответственно, то после рестарта OS X запустит демон в рутовой сессии, и будет запускать агента в каждой пользовательской сессии.

Но очень не хотелось бы требовать перезагрузку ОС после установки программы.
Пробовал запускать демона с помощью sudo launchctl load *.plist, он хоть и запускался от рута, но в контексте текущей пользовательской сессии, а не в рутовой. И при логофе этот процесс погибал.
Также пробовал запустить агента с помощью launchctl bsexec <pid> chroot -u <user> / launchctl load *.plist, где <pid> — один из процессов пользователя <user>. Но получал аналогичную ситуацию — агент запускался от имени пользователя <user>, но в контексте текущей сессии.


Можно ли запустить демона и агентов вручную (с помощью скрипта или API-функций) в контексте нужной сессии без перезагрузки? Интересуют OS X версии 10.9+
os x daemon
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.