Запустите приложение в окне входа
Я ищу способ запуска приложения, такого как Reflector или AirServer, как на Mac, так и на ПК до того, как произойдет вход пользователя в систему. Приложение практически не имеет графического интерфейса, пока кто-то не начнет отправлять на него данные, после чего оно перейдет в полноэкранный режим.
Есть ли способ запустить приложение на экране входа в систему на Mac и / или ПК?
1 ответ
В OS X вы можете создать предварительно запущенный агент запуска. Например, сохранить этот список свойств как /Library/LaunchAgents/some.label.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>some.label</string>
<key>LimitLoadToSessionType</key>
<array>
<string>LoginWindow</string>
<string>Aqua</string>
</array>
<key>ProgramArguments</key>
<array>
<string>say</string>
<string>a</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Убедитесь, что plist принадлежит root. Если это не так, он может быть загружен, если вы запустите launchd load
как пользователь, но он не загружается с помощью launchd автоматически.
Затем, если вы перезапустите компьютер, команда say должна быть запущена один раз при отображении окна входа в систему и еще раз после графического входа пользователя.
Если вы не хотите, чтобы программа запускалась снова, когда пользователь входит в систему графически, удалите <string>Aqua</string>
,
Если автоматический вход включен и LimitLoadToSessionType
установлено просто LoginWindow
программа не запускается вообще.
См. Техническую заметку Daemons and Agents или man launchd.plist
для дополнительной информации.