How can I delay a specific program on startup?

How to delay a program such as cairo-dock (No openGL) or Firefox?

Sometimes programs crash when started with other startup apps. I want programs to start 10 seconds late to avoid a crash.


Solution 1:

Delaying autostart with inbuilt delay option


Note: Only works with desktop sessions that recognize the X-GNOME-Autostart-Delayparameter (e.g. Unity, Unity2D, GNOME). This will not work for LXDE, XFCE, KDE, etc.


With this solution there's no need for a script or sleep. Head to your autostart folder:

nautilus ~/.config/autostart

Find the .desktop file that corresponds with your application and open it in a text editor, e.g. gedit:

gedit ~/.config/autostart/application.desktop

Append the following line to the file:

X-GNOME-Autostart-Delay=foo

where foo is the time in seconds you want to delay the application launch by, e.g.:

X-GNOME-Autostart-Delay=60

Save the file, relog and you should see the effects.

Solution 2:

Try this:

bash -c "sleep 10 && firefox"

Solution 3:

You could try to change the command to this:

sleep 10 && firefox

Some people say it works, some say it doesn't, if this is your case, and it does not work, you can try with:

xterm -e 'sleep 10 && firefox'

Solution 4:

I had to use this to get it to work for skype: sh -c "sleep 10 && skype &" in Ubuntu 12.04

Solution 5:

Make a startup command using https://askubuntu.com/a/48327/139749 . Then you can add delay by opening ~/.config/autostart and edit related file. You should add the following commands:

X-GNOME-Autostart-enabled=true
X-GNOME-Autostart-Delay=10