Мое приложение находится в изолированной программной среде (и не может открыть или записать какой-либо файл). Мне было любопытно, что случилось с дочерними процессами. Я заставил мое приложение выполнить скрипт bash (который просто записывает в файл). Поведение было ожидаемым: сценарий, запущенный моим изолированным приложением, тоже был изолированным.
Однако, когда я попытался запустить в моем приложении другое (не мое) приложение, дочернее приложение не оказалось изолированным. Мне было интересно, что отличалось?
Я запускаю свой скрипт с
[task setLaunchPath: @"/bin/bash"];
[task setArguments:@[@"path/to/script.sh"]];
[task launch];
, а мое приложение с
[task setLaunchPath: @"/usr/bin/open"];
[task setArguments:@[@"-a", @"/Applications/some.app"]];
[task launch];
(такая же проблема возникает при запуске приложения с[[NSWorkspace sharedWorkspace] launchApplication:@"/Applications/some.app"];
)
Примечание: я не контролирую some.app, это может быть любое приложение. Я тоже прочитал документ от Apple , но понимаю, что он работает только в том случае, если у нас тоже есть приложение. 1016 *