7

Hello Running Ubuntu Mate. Is their a way to have command line applications open automatically at startup.

Right now every time I restart the computer I have to open the programs manually.

Dean Meehan
  • 103
  • 3
M.R.P.
  • 85

2 Answers2

6

In any desktop environment, you can autostart programs after login. Do this if you want a few specific programs to be always available.

In many desktop environments, you can save "sessions". This causes the system to "remember" all applications that were still open at the time you shut down the system. You can also "hibernate" or "suspend" the system rather than shutting it down to have a similar effect, but it does not work reliably on any hardware.

In the MATE desktop environment you can autostart programs after login or restore previously opened in the MATE Control Center.

  • Add "autostart" programs using the "Startup programs" tab. You can specify both graphical and command line applications (image source). You can simply specify the name of the executable if it is in your search PATH, else specify the full path name.

    enter image description here

  • Use the tab "Options" to enable saving your session:

    MATE Startup Applications

    and check Automatically remember running applications when logging out here.

vanadium
  • 88,010
1

To enable Hibernation in 20.04:

With hibernation your RAM is saved to a swapfile. Rebooting restores everything that was in use before exiting.

Increase swapfile size to match RAM size up to 8GB.

  • Check the swap that is in use:

    sudo swapon -s
    
  • If swap partition(s) are found:

    sudo swapoff -a
    sudo nano -Bw /etc/fstab
    
  • Add # before the UUID of the swap partition(s):

    # UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX   none   swap    sw     0       0
    
  • Add a line for the swapfile, if one does not exist:

    /swapfile   none    swap     sw      0       0
    
  • Create the swapfile:

    sudo fallocate -l XG /swapfile*
    

    where X is swapfile's size in GB:

    sudo mkswap /swapfile
    sudo chmod 0600 /swapfile
    sudo swapon /swapfile
    
  • Reboot:

    sudo reboot
    

Add resume location and offset to grub.cfg:

  • Edit /etc/default/grub:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX resume_offset=XXXXX"
    
  • Use UUID from root.

  • Use offset from:

    sudo filefrag -v /swapfile |grep " 0:"| awk '{print $4}'
    
  • Update GRUB:

    sudo update-grub
    
  • Test hibernation:

    sudo systemctl hibernate
    

A hibernate button can be added using GNOME extensions.

Note that there is a slight possibility of getting holes in a swapfile when creating it with fallocate. /var/log/syslog can be searched for the phrase swapon: swapfile has holes to ensure there will be no data loss.

A swap file can alternatively be created using dd:

sudo dd if=/dev/zero of=/swapfile bs=1G count=8

An error when using dd may overwrite your HDD.

C.S.Cameron
  • 19,519