Запуск приложения командной строки в фоновом режиме с помощью 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 со строкой.

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