Найти тему

Работа команд в фоне на протяжении нескольких часов

​​#инструкция #гайд #полезноЗнать

На днях мной была найдена одна очень интересная заметка на Reddit, автор которой провел несколько экспериментов, с целью установить как долго команды могут выполнятся в фоне в зависимости от различных условий. Думаю многим будет наконец разобраться в этом вопросе, поскольку в настоящее время большинство авторов использует «костыли», вроде вызова команды самой себя или миллионных итераций циклов.

iOS/iPadOS

Запуск с помощью Автоматизации или Siri:

- работает всего около 4 минут и останавливается. Однако, может работать намного дольше, если добавить Выключить Siri и продолжить в начале команды;

- часто крашиться.

Автоматизация: Невозможно отменить в процессе выполнения.

Siri: Переключается на приложение «Быстрые команды» (вы можете добавить Перейти «Домой»).

Дом или Spotlight:

- работает более 12 часов;

- требуется пара попыток для запуска в фоновом режиме;

- невозможно запустить другие команды из Дома или меню Поделиться;

- невозможно отменить в процессе выполнения.

Виджеты:

- работают более 12 часов;

- можно отменить в процессе выполнения;

- можно одновременно запускать другие команды из виджетов или меню Поделиться.

Команды взаимодействия с пользователем (Показать оповещение, Выбрать из меню и т. д.) могут крашиться.

Действие Подождать

Пожалуйста, имейте в виду, что команды работают медленно, когда устройство заблокировано и не заряжается. Например, одно действие Подождать 1 может занять несколько минут. Чтобы предотвратить это, вам нужно будет подключить устройство к зарядному устройству или оставить экран включенным.

macOS

Есть много способов запуска команд в фоновом режиме в macOS:

- запустите из окна редактора. Вы можете закрыть окно, и оно продолжит работу.

- щелкните правой кнопкой мыши значок приложения «Команды» на панели Dock и запустите из меню.

- запустите из строки меню "Быстрые команды", Siri или Spotlight.

- используйте команду shortcuts run "My Shortcut" в Terminal.

Вы можете запускать одни и те же или другие команды несколько раз и одновременно, а команды могут выполняться часами (а, возможно, и днями). Вы можете остановить их в строке меню приложения «Команды». Однако, если запущено несколько экземпляров одной и той же команды, вы можете остановить только последнюю и только один раз. Простого способа выборочно отменить не установлено.

Однако все запущенные команды немедленно остановятся при завершении приложения «Команды». Похоже, что приложение завершает все процессы команд при завершении. Вы сможете запускать команды в фоновом режиме бесконечно, если будете избегать этого.