Как я могу выполнить сценарий оболочки и закрыть свое приложение в какао - PullRequest
1 голос
/ 15 июня 2011

Я бы хотел запустить скрипт оболочки из моего приложения с какао при нажатии на кнопку. Я могу легко использовать вызов system (), но это не все, что мне нужно. Мне нужно, чтобы приложение закрывалось, как только оно вызывает скрипт или даже до того, как оно вызывает скрипт. Обычно запуск сценария должен занять несколько секунд, поэтому мне нужно закрыть приложение к этому времени. Причина, по которой мне это нужно, в том, что я пишу простое приложение, которое переводит Mac в спящий режим, но до этого оно выполняет большую часть очистки с помощью сценария оболочки, и я в основном не хочу, чтобы это приложение было открыто, когда я нарушаю система вернулась из сна.

Будет ли работать вилка или что-то в этом роде или мне понадобится какая-то особая магия для этого?

Спасибо

Ответы [ 2 ]

1 голос
/ 12 марта 2012

Если вы находитесь в Какао, вам нужно использовать NSTask . Если вашему сценарию требуются права администратора, всегда есть STPrivilegedTask .

0 голосов
/ 15 июня 2011

Вы можете использовать popen () вместо system ().Процесс init должен наследовать право собственности на скрипт, который вы запускаете при выходе из приложения.Вы также можете использовать fork / exec, но popen будет проще, так как его семантика намного ближе к системной ().

...