Запустите приложение в окне входа

Я ищу способ запуска приложения, такого как 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 для дополнительной информации.

Другие вопросы по тегам