Автозапуск і перевірка наявності мережі в MacOS
Є консольна утиліта (без GUI, пише в stdout, не інтерактивна, тож нічого від користувача не очікує), яку я хочу запускати після логіну користувача. Зараз це зроблено через «Загальні налаштування» => «Автозапуск і розширення» => «Запускати при вході в систему». Але є 2 але. Я не бачу як передати параметри командного рядка чи встановити змінні оточення для програми, що запускається. Ну ок, я зробив скрипт на bash який вказую в автозапуск, а вже в ньому запускаю свій бінарник з потрібними параметрами. Якщо це важливо — бінарник був написаний на Rust, це просто один виконуваний файл. Але після запуску відкривається термінал, який потім не закривається, залишається відкритим. Не те, щоб це дуже принципово, але краще б нічого не відкривалося (там всі дії в фоні, втручання користувача не треба), або термінал закривався повністю, ніби і не відкривався. Бо не кожен раз я користуюсь терміналом, чого воно висіти буде...
Інше питання — інколи логін відбувається на кілька секунд раніше, ніж ноут встигне підключитися до WiFi. апка падає з помилкою. І у мене є питання, як коректно в MacOS перевірити, що є мережа. Звісно, я можу перевірити наявність IP адреси на інтерфейсі, чи спробувати розпізнати щось через DNS, чи зробити ping (тут складніше, це потребує додаткові привілеї, не бажано б) — але може в MacOS є якийсь стандартний і найбільш коректний шлях? Якось «зачекати наявності підключення до інтернет» — може навіть не в середині мого коду, а на рівні запуску апки?
7 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів