How to run a program on startup in Debian

26,486

Solution 1

Create a desktop entry for the program and place it in ~/.config/autostart

As an example that starts Safe Eyes program placing it as ~/.config/autostart/safeeyes.desktop.

[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=Safe Eyes
Comment=Protect your eyes from eye strain
Exec=safeeyes
OnlyShowIn=XFCE;
StartupNotify=false
Terminal=false
Hidden=false
Categories=Utility;

[Optional] Set the proper permission.

  sudo chmod 644 /.config/autostart/[program-name].desktop

Solution 2

Alternative way:

sudo crontab -e

And add

@reboot file_you_want_to_run &
Share:
26,486
Jackson Haile
Author by

Jackson Haile

Updated on August 22, 2020

Comments

  • Jackson Haile
    Jackson Haile over 3 years

    I am attempting to run a program that I made on startup on my Raberry Pi 2. It is running Debian (Jessie) but it doesn't seem to work. I tried following this guide: Debian: Running Scripts on StartUp and creating a system link but nothing seems to be working. The program works when I run it not on startup. Here's the code:

    #!/bin/sh
    #/etc/init.d/StartGRIP.sh
    #
    
    ### BEGIN INIT INFO
    # Provides:            StartGRIP.sh
    # Required-Start:      $local_fs $network
    # Required-Stop:       $local_fs
    # Default-Start:       2 3 4 5
    # Default-Stop:        0 1 6
    # Short-Description:   Starts GRIP Pipeline
    # Description:         During startup, runs below command and starts GRIP
    ### END INIT INFO
    # Start processing
    env LD_LIBRARY_PATH=/home/pi/vision/grip:LD_LIBRARY_PATH java -jar...
    

    The last command works so I didn't include the whole line as it is a long line.

    Any help is greatly appreciated!

  • fcm
    fcm almost 8 years
    Not sure why but, this is unreliable, however, works most of the time. Not sure at what runlevel this is executed.
  • Gabriel Sandoval
    Gabriel Sandoval over 4 years
    is it possible to use this method for a script that requieres sudo privileges?
  • amrezzd
    amrezzd over 4 years
    @GabrielSandoval Yes it's possible.
  • tripleee
    tripleee over 3 years
    This runs the program when you log in to your desktop, not when the computer boots.
  • tripleee
    tripleee over 3 years
    There is no need to run the script in the background. cron by definition runs asynchronously.