Мне нужно запустить несколько экземпляров моего рабочего приложения, созданного в виде пакета Cocoa под названием worker.app (это окно скрыто) из моего консольного приложения C ++. Я запускаю команду «открыть» как процесс в цикле, как это:
open -W -g -n -a /Users/.../worker.app --args -a=4 --b
(я тоже пробовал без -W)
Проблема в том, что случайным образом, но в большинстве случаев это 2 из 3 процессов, происходит именно эта ошибка:
No application knows how to open .
Когда я добавляю немного сна (200 мс) между запусками, это похоже на работу. Но я хотел бы знать причину или лучший способ решить эту проблему, потому что мне нужно быстро запустить до 30 процессов, и я не знаю, как долго ждать. То, что работает для меня, может быть недостаточно для других пользователей. Меньшая задержка, которую я использую, дает меньшую вероятность успеха. Интересно, это ошибка в open или я что-то упустил.
Поскольку справочная страница для open перечисляет аргумент file в формате, который является обязательным, я также пытался передать фиктивный каталог '.' быть открытым рабочим. Он запускает один процесс, в то время как другой показывает всплывающее диалоговое окно с текстом The document “__working folder__” could not be opened. worker cannot open files in the “folder” format.
.
Когда я пытаюсь использовать для параметра file значение, подобное '/tmp/abc.def' (это существующий файл), для некоторых процессов ошибка изменяется на LSOpenURLsWithRole() failed for the application /Users/.../worker.app with error -10817 for the file /tmp/
Моя версия ОС macOS High Sierra 10.13.6.
Спасибо.