我知道如何在啟動時、登入時(系統 > 首選項 > 啟動應用程式)或開啟 shell (.bashrc) 時運行程式。我也讀過“桌面載入後執行腳本?”。我意識到添加到啟動應用程式中的每個應用程式都會延長桌面可用的時間。因此,我正在尋找一種方法來從常規啟動完成後運行的腳本(使其正常工作)啟動所有“有好東西”。
我不太清楚如何到達那裡。我是否會使用第二個腳本,用 & 呼叫第一個腳本(因此它在後台運行)並向第一個腳本添加等待(幾秒鐘|特定事件)?
答案1
sleep
只需在“必備”腳本的開頭調用即可。這不應該阻止桌面載入。您也可以透過背景每個進程來加快多核心硬體上的速度。
例如
sleep 20s
<something that takes a long time> &
<this can now start immediately> &
...
這兩個命令將並行運行,但它們會在啟動前等待 20 秒。如果您不想指定幾秒,則可以使用「m」、「h」或「d」來指定分鐘、小時或天。 =)
答案2
如果您要啟動一些昂貴的東西,請在後台延遲啟動它。例如
after 20s find-all-the-dirty-dishes &
after 1m find ~ -name '*~' -mtime +30 -exec rm '{}' ';'
你必須after
自己實現,但它可能是這樣的
#!/bin/sh
sleep "$1"
shift
exec "$@"