我知道如何在启动时、登录时(系统 > 首选项 > 启动应用程序)或打开 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 "$@"