Мне нужно запустить приложение при запуске / входе в систему на моем Mac. Я хочу, чтобы он запускался в фоновом режиме и начинал выполнять свою работу, не прерывая ни меня, ни меня, чтобы запустить его, потому что я неизменно забывал, а затем, когда мне это нужно, он не работал!

Я попытался с помощью AppleScript сказать терминалу запустить его и ввести свой пароль, но в итоге он открывает несколько окон терминала и не работает. В идеале мне нужен скрипт, который я могу просто добавить к элементам входа пользователя, и он будет работать для меня.

Приложение также не может принимать аргумент пароля и имеет как пароль, так и sudo! Мне нужно решение, которое может быть сделано в виде appleScript (который может быть превращен в исполняемый файл) или мне нужен сценарий командной строки, но я понятия не имею о них.

Это ручной код, который я печатаю

$ sudo serverStatus
password:123456
password:serverpass

Мой AppleScript:

tell application Terminal
 activate
 do shell script "sudo serverStatus"
 delay 5
 do shell script "123456"
 delay 2
 do shell script "serverpass"
end tell

1 ответ1

2

do shell script используется для выполнения сценариев оболочки в AppleScript и фактически не открывает окно терминала. Вы можете открыть новое окно терминала с помощью do script а затем эмулировать ввод паролей keystroke .

tell application "Terminal"
    do script "sudo serverStatus"
    activate
end tell
delay 1
tell application "System Events"
    keystroke "login password" & return
    delay 1
    keystroke "server password" & return
end tell

Если вы готовы, вы также можете просто использовать хук входа в систему, который будет запущен после входа в вашу учетную запись пользователя. Этот хук может вызвать соответствующий AppleScript с помощью:

osascript /path/to/script.scpt

Но это кажется слишком большим, если вы можете просто добавить его к элементам входа вручную.

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