Startup
網路啟動後在啟動時執行 GUI 應用程序
我需要在啟動時自動啟動 GUI 應用程序,但是在網路啟動後,正確的方法是什麼?我的作業系統是帶有 LXDE 的 Lubuntu。我嘗試了不同的方法,例如 crontab、rc.local 和 autostart,但都沒有成功。
如果您知道如何為 LXDE 放置啟動腳本(請參閱文件),您始終可以建構自定義腳本:
until ip link show $interface | grep -F -q "state UP"; do sleep 10 # wait every ten second done # interface is up, now start program exec bla
解釋:
ip link show $interface
列印帶有介面狀態的一行(在本例中enp0s25
):3: enp0s25: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
grep -F -q "state UP"
檢查輸出是否包含 linestate UP
。如果是,則返回成功(退出程式碼 0),否則返回失敗(退出程式碼 1)。until … do; sleep 10; done
執行sleep 10
直到命令成功,即直到ip
顯示state UP
。只要介面不up,等待10秒再檢查。- 當介面啟動時,循環結束並執行以下腳本。
這當然是“忙於等待”,並不是一個理想的解決方案,但總會奏效。(或者,如果您想確保真正的網際網路連接,請使用
ping -W 2 -c 1 google.com >& /dev/null
而不是。)ip … | grep
如果您使用某些網路管理器,請檢查其文件是否可以添加在建立網路連接時執行的腳本。但是,這可能僅適用於 root 訪問,這會使您在 X 會話中啟動程序變得複雜。