2013-01-18 64 views
0

我有一個MAC OSX目標C應用程序say first.app,其中我使用帶管理員權限的NSAppleScript來運行shell腳本。此腳本縮進以啓動另一個目標C應用程序說second.app。啓動MAC OSX目標的不同方法從命令行執行C opplication

在shell腳本中使用打開命令Ex:「open second.app」時,它可以正常工作。

但是,如果通過在shell腳本中調用其二進制Ex:「/second.app/Contents/MacOS/second」來啓動second.app,則該控件不會返回到first.app,直到second.app關閉。當我們關閉second.app時,first.app會恢復。

從開放命令啓動應用程序和直接調用應用程序二進制文件有什麼區別?

回答

0

調用

open Second.app 

相同雙擊Finder中的應用程序的圖標。該應用程序通過LaunchServices啓動,並且open命令立即返回。

調用

/path/to/Second.app/Contents/MacOS/Second 

直接啓動應用程序(不LaunchServices),返回僅當應用程序已經終止。

+0

謝謝。它真的很有幫助。我有疑問,直接運行二進制文件時,我們可以使用命令「/path/to/Second.app/Contents/MacOS/Second 2>&1&」來運行。這個案例腳本終止。但仍然first.app沒有恢復。你知道原因嗎?即使應用程序在後臺運行,NSAppleScript也會等待嗎? – user12345

+0

@ user1336309:對不起,我不知道。你可以嘗試'nohup /path/to/Second.app/Contents/MacOS/Second>/dev/null 2>&1',這可能有幫助。 –

+0

nohup將標準輸出重定向到該文件。它沒有幫助,再次感謝你。 – user12345