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

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

Я ищу способ запустить приложение вроде Reflector или AirServer как на Mac, так и на ПК до того, как произойдет вход пользователя в систему. Приложение практически не имеет графического интерфейса, пока кто-то не начнет отправлять ему данные, после чего оно переходит на полноэкранный режим.

Есть ли способ запустить приложение на экране входа в систему на Mac и/или ПК?

решение1

В OS X вы можете создать агента launchd перед входом в систему. Например, сохраните этот список свойств как /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, программа вообще не запустится.

СмотритеТехническая заметка по Демонам и Агентамили man launchd.plistдля получения дополнительной информации.

Связанный контент