如何延迟特定程序的启动?

如何延迟启动诸如cairo-dock(无OpenGL)或Firefox这样的程序?
有时候,当与其他启动应用程序一起启动时,程序会崩溃。我希望程序能延迟10秒启动,以避免崩溃。

请参考以下链接:http://askubuntu.com/questions/22512/how-can-i-delay-dropbox-from-starting-but-not-disable-it - belacqua
6个回答

延迟自启动,使用内置的延迟选项

注意:仅适用于识别X-GNOME-Autostart-Delay参数的桌面会话(例如Unity,Unity2D,GNOME)。这对LXDE,XFCE,KDE等不起作用。


使用这个解决方案,不需要脚本或者睡眠。前往您的自动启动文件夹:

nautilus ~/.config/autostart

找到与您的应用程序相对应的 .desktop 文件,并在文本编辑器(例如 gedit)中打开它。
gedit ~/.config/autostart/application.desktop

将以下行追加到文件中:
X-GNOME-Autostart-Delay=foo

其中foo是以秒为单位的延迟应用程序启动的时间,例如:

X-GNOME-Autostart-Delay=60

保存文件,重新登录,然后您应该能够看到效果。

这在Ubuntu 12.04和12.10开发版本中都非常有效,使用Gnome-shell 3.6。 - bmbaker
2适用于Ubuntu 18.04。 - Ives
1有没有一个网站或者手册可以找到GNOME参数的文档?我在gnome-session的手册中搜索过,但是没有找到。 - builder-7000

试试这个:
bash -c "sleep 10 && firefox"

4非常感谢,为什么只有“sleep 10 && firefox”不起作用呢? - user3804598

你可以尝试将命令改为这样:
sleep 10 && firefox

有些人说它有效,有些人说无效,如果你遇到这种情况,而且它确实无效,你可以尝试以下方法:
xterm -e 'sleep 10 && firefox'

我不得不在Ubuntu 12.04中使用这个命令来让Skype正常工作:sh -c "sleep 10 && skype &"

使用https://askubuntu.com/a/48327/139749创建一个启动命令。然后,你可以通过打开~/.config/autostart并编辑相关文件来添加延迟。你应该添加以下命令:
X-GNOME-Autostart-enabled=true
X-GNOME-Autostart-Delay=10

你在重复第一个答案。 - maxadamo

@Noraj的解决方案在Ubuntu 18.04上运行良好。为了通过Insync和Synology云盘实现Google Drive同步,我添加了一些实用的示例。我不希望它们延迟启动。
对于Google Drive:
[Desktop Entry]
Version=1.0
Type=Application
Name=Insync
GenericName=Insync
Comment=Launch Insync
Icon=insync
Categories=Network;
Exec=insync start
TryExec=insync
Terminal=false
X-GNOME-Autostart-Delay=60

云存储方面的话:
[Desktop Entry]
Name=Synology Drive Client
Comment=Synology Drive Client
Exec=synology-drive autostart
Icon=/opt/Synology/SynologyDrive/images/ico_72_cloud_station.png
Terminal=false
Type=Application
Categories=Network;FileTransfer;
X-GNOME-Autostart-Delay=75

如果您安装了这些应用程序并选择让它们在登录时启动,那么两个文件都位于$HOME/.config/autostart目录下。