1

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

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

1 ответ1

0

В 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 для получения дополнительной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .