2012-11-09 65 views

回答

2

我能想到的唯一事情是比啓動腳本複雜的東西。例如一個應用程序管理器,並使用事件(在你的情況下「應用程序啓動」事件)來啓動下一個應用程序,所以

如果你試圖從控制檯啓動應用程序,並希望他們完成初始化/同樣的順序,你啓動它們,然後它不起作用,因爲你無法控制加載應用程序需要多長時間。

如何應用程序可以與應用程序管理器通信,告訴它,他們完成加載使用的inter-process communication

許多可用的機制,如果在另一方面,這些應用都不是你的,你無法實現IPC,然後你必須找到另一種方法來確定在啓動下一個應用程序之前它們是否已經啓動,如果它們提供了它們,可能會對它們執行ping操作,或者搜索它們在重新啓動時創建的某些文件,或者其他任何可以檢測到的行爲並根據它來決定申請是否已經開始

+0

感謝您的詳細解釋。 –

3

對於wmctrl這似乎是一個工作,對於e xample:

wait_for_window() { 
    "[email protected]" & 
    local PID=$! 
    while test -z "$(wmctrl -pl | awk "\$3 ~ $PID")"; do 
    sleep 1 
    done 
} 

wait_for_window gnome-calculator 
wait_for_window gnome-terminal 

這可能需要一些調整,因爲PID和窗口之間的關係並不總是微不足道的,但你的想法。

相關問題