Запуск приложения командной строки в фоновом режиме с помощью launchagents mac os x
У меня есть приложение командной строки, которое должно запускаться, когда пользователь входит в систему. Я добавил XML-файл в каталог агента запуска пользователя. Приложение работает, но проблема в том, что он открывает терминал при запуске. Я хочу, чтобы он просто работал в фоновом режиме, а пользователь не знал об этом. Это мой плист:
<?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>LaunchOnlyOnce</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/open</string>
<string>-n</string>
<string>/Applications/Host</string>
</array>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>com.test.httphost</string>
<key>RunAtLoad</key>
<true/>
</dict>
Как я могу это сделать?
1 ответ
Решение
Я ожидаю, что проблема вызывает open
, Если вы звоните /Applications/Host напрямую, он должен работать как положено.
Однако, если вам нужно -n
параметр для открытия, попробуйте позвонить через вызов /bin/bash
с -c
параметр и передать оставшуюся часть команды bash со строкой.