[task setCurrentDirectoryPath:[@"~" stringByExpandingTildeInPath]];
Вы можете просто позвонить NSHomeDirectory
, чтобы получить путь к домашней директории.
[task setLaunchPath:@"/bin/sh /applications/jarvis/brain/server.sh"];
Этот файл не существует.В каталоге / bin нет каталога с именем «sh»;как таковой, в нем нет подкаталога «apps», в этом подкаталоге «jarvis», в этом подкаталоге «brain» и в этом файле «server.sh».не оболочка.Трюки с оболочкой не работают;он не анализирует аргументы, не интерполирует переменные окружения или ~ (обратите внимание, что вы должны были сделать это явно), или все остальное, что делает оболочка.Вы можете использовать оболочку только так же, как и любую другую программу.
Вам необходимо указать путь запуска для пути к оболочке и передать путь к сценарию оболочки в качестве первого аргумента.Кроме того, если вы знаете, что файл сценария оболочки является исполняемым (и содержит правильный shebang ), вы можете передать путь к файлу сценария в качестве пути запуска и пропустить аргументы.