Autostart program on linux

Автозагрузка в Ubuntu

Многие программы мы используем постоянно и запускаем их каждый раз при старте системы, а некоторые, такие, как мессенджеры или различные утилиты должны постоянно работать в фоне чтобы правильно выполнять свою задачу. Для этого в операционных системах существует автозагрузка. Программы запускаются автоматически, после того, как запустилась ОС или графическая оболочка.

В этой статье мы поговорим о том, как работает автозагрузка в Ubuntu, какие существуют способы автозагрузки в этой системе и как добавить туда программы.

АВТОЗАГРУЗКА В UBUNTU

Первым делом нужно сказать, что в Ubuntu существует несколько уровней автозагрузки. Я не буду говорить здесь про systemd и автозагрузку сервисов, так как уже рассматривал это в одной из первых статей. Программу или скрипт можно добавить в автозагрузку такими путями:

  • Утилита «Автоматически запускаемые приложения»;
  • Папка «Автозапуск»;
  • Файл rc.local;
  • Файл Xinitrc;

Мы рассмотрим первые два способа, поскольку два последние более рассчитаны на скрипты, а не программы. Сначала автозагрузка в Ubuntu с помощью стандартной утилиты.

Откройте меню системы и наберите «Авто» и откройте программу, которая будет первой в списке, Автоматически запускаемые приложения:

Здесь будут перечислены все приложения, которые сейчас запускаются автоматически. Чтобы добавить в автозагрузку ubuntu еще одно приложение, нажмите кнопку «Добавить»:

Здесь нужно ввести имя нового пункта, а также команду запуска приложения. Вы можете выбрать приложение в файловой системе, если не помните путь, нажав кнопку «Обзор»:

В команде можно указывать параметры, если это нужно. Еще можно заполнить поле «Описание», но это уже необязательно. Если вам нужна определенная программа из главного меню, но вы не знаете где ее найти и как пишется ее команда, можно посмотреть ее в том же меню. Но для этого нам нужно сначала установить утилиту «Главное меню» из центра приложений:

Дальше запустите утилиту и найдите в ней нужное приложение. Затем нажмите «Свойства»:

Здесь вам нужно обратить внимание на строку «Команда», скопируйте ее и можете использовать для автозагрузки.

Следующий способ — это папка автозагрузки. Она находится по адресу ~/.config/autostart. По сути, это тот же самый способ, только он может выполняться без графического интерфейса. Когда вы настраиваете автозагрузку через приложение, то в этой папке создаются файлы настроек с именем desktop. Вот, например:

Читайте также:  Python make linux executable

Напоминаю, что для того, чтобы посмотреть скрытые файлы нужно нажать сочетание клавиш Ctrl+H. Теперь попытаемся создать новый конфигурационный файл для еще одной программы. Вот таким будет его синтаксис:

[Desktop Entry]
Type = Application
Name = имя_нового_пункта
Exec = команда
Icon = полный_путь_к_иконке
Comment = комментарий
X-GNOME-Autostart-enabled = true

Для примера, сделаем файл для запуска плеера VLC, он будет выглядеть вот так:

[Desktop Entry]
Type=Application
Name=VLC
Exec=vlc
Icon=/usr/share/icons/hicolor/16×16/apps/vlc.png
Comment=VLC Media Player
X-GNOME-Autostart-enabled=true

Готово, и самое интересное, что если вы откроете приложение автозагрузки. То там тоже появится этот пункт. Это такой способ настройки без графического интерфейса.

ВЫВОДЫ

В этой небольшой статье мы рассмотрели как настраивается автозагрузка программ ubuntu различными способами — через графический интерфейс и терминал. Вы можете использовать эти знания, чтобы сделать работу в вашей системе более удобной. Даже несмотря на то, что Ubuntu перешла на Gnome, автозагрузка в ubuntu 16.04 и сейчас выглядят практически одинаково. Если у вас остались, вопросы, спрашивайте в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

How to start program at Linux boot automatically

Linux startup consists of several stages, during which you can configure a program to start automatically. This can be a single command, a sequence of commands, or an executable shell script. However, startup procedures may vary between different Linux distributions and versions.

Modern Linux systems boot into systemd, while older Linux versions utilize System V init. Regardless, both systems will execute cron and rc.local before loading the desktop environment, such as GNOME or KDE. In contrast, server-based Linux distributions do not load a desktop environment and instead provide a login prompt at the console. After logging in, the default shell like Bash runs.

Methods to automatically run program on Linux startup:

Running a program automatically on Linux startup via systemd

systemd is the standard system and service manager in modern Linux, responsible for executing and managing programs during startup, among other tasks. Compatible programs will include service unit files used by systemd to manage the program’s execution.

To configure systemd to run a program automatically during Linux startup, follow these steps:

$ sudo systemctl list-unit-files --type=service [sudo] password for user: UNIT FILE STATE accounts-daemon.service enabled apparmor.service enabled apport-autoreport.service static apport-forward@.service static apport.service generated apt-daily-upgrade.service static apt-daily.service static atd.service enabled autovt@.service enabled blk-availability.service enabled bootlogd.service masked bootlogs.service masked bootmisc.service masked checkfs.service masked checkroot-bootclean.service masked checkroot.service masked cloud-config.service enabled cloud-final.service enabled cloud-init-local.service enabled cloud-init.service enabled console-getty.service disabled ##### snipped #####

You’ll have to create your own service unit if it’s a custom program or if your program doesn’t come with one during installation
Related: Creating and modifying systemd unit files

$ sudo systemctl is-enabled mysql disabled
$ sudo systemctl enable mysql Synchronizing state of mysql.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable mysql Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.
$ sudo systemctl is-enabled mysql enabled

Running a program automatically on Linux startup via cron

cron is a daemon used to execute scheduled commands stored in the cron job table (crontab), which is unique for each user in the system. It starts during system boot, either via systemd or System V init, and you can schedule your program to run during system boot by following these steps:

Читайте также:  Распаковка img прошивки linux

You’re required to select an editor for the crontab if this is the first time the user uses the command.

$ crontab -e no crontab for user - using an empty one Select an editor. To change later, run 'select-editor'. 1. /bin/nano 

A crontab will be created for the user running the command and will be executed using the privileges of the user. If you need your program to run as the root user, run crontab -e as the root user itself.

# m h dom mon dow command @reboot
@reboot /sbin/ip addr | grep inet\ | tail -n1 | awk '< print $2 >' > /etc/issue && echo "" >> /etc/issue
$ crontab -e crontab: installing new crontab $
$ crontab -l # m h dom mon dow command @reboot /sbin/ip addr | grep inet\ | tail -n1 | awk '< print $2 >' > /etc/issue && echo "" >> /etc/issue

Running a program automatically on Linux startup via rc.local

rc.local is a legacy script from the System V init system, executed before displaying a login screen for the desktop environment or terminal login prompt. It is typically a Bash shell script capable of running any commands.

To configure your rc.local script, follow these steps:

As the root user, open or create the /etc/rc.local file using your preferred editor if it doesn't exist.

#!/bin/bash /sbin/ip addr | grep inet\ | tail -n1 | awk '< print $2 >' > /etc/issue echo "" >> /etc/issue exit 0

Running a program automatically on GNOME startup

GNOME is the default desktop environment for Linux distributions like Ubuntu and Red Hat. You can configure GNOME to run programs upon user login by following the instructions in the linked article:

Running a program automatically on KDE startup

KDE is another popular Linux desktop environment and the default for Kubuntu and openSUSE. It can also be configured to run programs when a user logs in, as detailed in the related article:

Running a program automatically on new Bash session

A new shell program will be spawned when you start your terminal session. Bash is the default shell for most Linux distributions, and when started, it will look for the following files in the particular starting a terminal session, a new shell program will be spawned. Bash is the default shell for most Linux distributions and, when initiated, looks for and executes the following files in order:

/etc/profile ~/.bash_profile ~/.bash_login ~/.profile

These files contain commands and logic for setting up environment variables and running required programs in the Bash language. They are also typically configured to execute other files, such as /etc/bashrc, /etc/bash.bashrc, and ~/.bashrc.

You can edit any of these files to run your program when a Bash session is started. Below is a part of a typical ~/.bashrc file:

PS1='$\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \$ ' PATH=/home/user/bin:$PATH export EDITOR=/usr/bin/vim alias ll="ls -l"

Author: Mohd Shakir Zakaria
Mohd Shakir Zakaria, a proficient cloud architect, is deeply rooted in development, entrepreneurship, and open-source advocacy. As the founder of Simplified Guide, he combines these passions to help others navigate the intricate world of computing. His expertise simplifies complex tech concepts, making them accessible to everyone. Discuss the article:

Comment anonymously. Login not required.

Источник

How do I start applications automatically on login?

15 Answers 15

20.04 and later

  1. If not yet done by default install gnome-startup-applications
  2. Search and open "Startup Applications" screenshot
  3. click add to enter the command including options of your application as you would run it from terminal (you may have to give in the full path if it runs from a non-standard location) screenshot
  • This will add a .desktop file in your ~/.config/autostart screenshot

14.04 and later

screenshot

  1. Open the Dash and search for "Startup Applications"
  2. Now click on Add and give in the command to run the application. This can be found in Main Menu if installed (see below)

Using Main Menu (alacarte) to find the terminal command to run a given program:

  1. Firstly open the program 'Main Menu' (type Menu in the Dash) screenshot
  2. Now select the program which you want to add to startup and click on properties . screenshot
  3. Now note the command for that program . screenshot

Non GUI approach

Advanced users may want to manually put a .desktop file in ~/.config/autostart to run applications after a user login. This may have following content:

[Desktop Entry] Type=Application Name= Exec= Icon= Comment= X-GNOME-Autostart-enabled=true 

You may have to give this file execute permission.

Источник

Оцените статью
Adblock
detector