ubuntu server автозагрузка скрипта

Как добавить скрипт в автозагрузку Ubuntu

Иногда возникает необходимость выполнить свой скрипт во время загрузки системы. Например, чтобы запустить определенную программу, поменять настройки разрешения экрана или выполнить обновление необходимой программы.

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

Автозагрузка с помощью стандартной утилиты Ubuntu

Создайте скрипт в удобном месте и сделайте его выполняемым:

sudo gedit /путь_к_скрипту/имя_скрипта.sh

#!/bin/bash
echo «Hello world»

Наш скрипт просто выводит строчку Hello world на экран, более подробно о создании скриптов читайте в статье написание скриптов на Bash. Когда скрипт будет готов, сделайте его исполняемым:

sudo chmod ugo+x /путь_к_скрипту/имя_скрипта.sh

Запустите утилиту Автоматически запускаемые приложения в главном меню системы:

ubuntu server автозагрузка скрипта

Нажмите кнопку Добавить и в поле Команда введите полный путь к файлу вашего скрипта или выберите его с помощью кнопки Обзор, затем нажмите Добавить:

ubuntu server автозагрузка скрипта

Скрипт будет выполнен после загрузки графической оболочки Ubuntu.

Автозагрузка скриптов Linux в systemd

Создайте файл сервиса systemd с помощью следующей команды:

Добавьте в него такое содержимое:

[Unit]
Description=My Script Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/полный/путь/к/скрипту/имя_скрипта.sh
[Install]
WantedBy=multi-user.target

ubuntu server автозагрузка скрипта

В строчке ExecStart можно прописать либо путь к скрипту, который надо выполнить, либо саму команду. Теперь добавьте этот скрипт в автозагрузку:

sudo systemctl daemon-reload
sudo systemctl enable mysrcipt

Источник

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

Рассмотрим два варианта автозагрузки программ или скриптов в Ubuntu. Через графический интерфейс и с использованием файла rc.local. В предыдущих версиях автозагрузка в Ubuntu работала именно через файл rc.local, однако в последних версиях её отключили. Мы включим данную возможность.

Автозагрузка через графический интерфейс

Автозагрузка через графический интерфейс настраивается в приложении Startup Application. Заходим в приложения (пункт 1) и запускаем Startup Application (пункт 2)

ubuntu server автозагрузка скрипта

Появится окно программы, где можно добавить, удалить или изменить текущие программы запускаемые при старте системы.

ubuntu server автозагрузка скрипта

Нажимаем Add для добавления программы в автозагрузку. Пишем название программы и указываем путь к ней. Для теста я добавил в автозагрузку игру mahjongg.

ubuntu server автозагрузка скрипта

Нажимаем Save и перезагружаем компьютер. Игра Mahjongg должна запуститься при входе в систему.

Как включить rc.local

Создаем файл rc.local

Добавляем в него содержимое:

Делаем файл исполняемым:

Включение rc.local в автозагрузку

ubuntu server автозагрузка скрипта

ubuntu server автозагрузка скрипта

Сохраняем файл и перезагружаемся. При старте системы будет создана папка testdir в /tmp/

Про автозагрузку в Ubuntu я записал видео с примерами по каждому из способов.

Источник

Создание своего скрипта автозапуска при загрузке компьютера

Содержание

Создаём пустой файл.

Первой строкой пишем:

Данная строка указывает, какую командную оболочку необходимо использовать. Дальше свои команды.

Сохраним его под оригинальным названием (чтоб не совпадал с уже существующими) в каталоге /usr/sbin/.

Чтобы скрипт запускался при загрузке, необходимо прописать его в файле /etc/rc.local до строчки exit 0. Если у вас не существует данного файла, создайте его и вставьте в него следующее содержимое:

Немного более сложный способ

Позволяет задать последовательность загрузки и поведение скрипта при разных runlevel’ах.

В этих директориях лежат скрипты остановки сервисов:

в этих — скрипты запуска сервисов:

Изучаем их на предмет последовательности (чем меньше первая цифра в начале скрипта, тем раньше запускается/останавливается приложение). Это может быть критично, если ваше приложение будет зависит от каких-то сервисов.

После того, как определились со скриптом запуска и очередностью, выполняем следующее :

Здесь я определил, что мой скриптик должен запускаться попозже остальных(70), и останавливаться пораньше(20). Цифры 2 3 4 5 0 1 6 означают уровни загрузки.

Если что-то не понравилось — все можно удалить

Выполнение скрипта при включении/отключении сети

В любом случае на скрипт должны быть установлены права, разрешающие выполнение, иначе он не сможет запуститься.

Источник

Как добавить скрипт в автозагрузку Ubuntu

В некоторых случаях при загрузке системы возникает необходимость выполнить свой скрипт. К таким случаям относится потребность в изменении разрешения экрана, запуске определенных приложений и обновлении конкретной утилиты.

Запуск скрипта можно реализовать различными способами. Сделать это можно путем использования графической оболочки или системы инициализации systemd, используемая сейчас практически во всех дистрибутивах.

Автозагрузка за счет стандартной утилиты Ubuntu

Первое, что следует сделать, это в удобном месте создать скрипт и выполнить его:

$ sudo gedit /путь_к_скрипту/имя_скрипта.sh

Этот скрипт выведет на экран пользователя сообщения «Hello world». Когда программа готова, ее необходимо сделать исполняемой. Для этого используется следующая команда:

$ sudo chmod ugo+x /путь_к_скрипту/имя_скрипта.sh

Дальше в главном меню системы необходимо запустить утилиту «Автоматически запускаемые приложения».

ubuntu server автозагрузка скрипта

Жмем кнопку «Добавить» и вводом полный путь к файлу скрипта в поле «Команда». Можно нажать кнопку «Обзор», найти, выбрать файл скрипта и нажать «Добавить».

ubuntu server автозагрузка скрипта

В дальнейшем программа будет исполняться каждый раз при запуске графической оболочки Ubuntu.

Автозагрузка скриптов Linux в Systemd

Воспользуйтесь специальной командой, чтобы создать файл сервиса system

В этот файл необходимо добавить содержимое:

Description=My Script Service

ubuntu server автозагрузка скрипта

Дальше в строчке под названием ExecStart нужно выполнить одно из следующих требований: прописать путь у выполняемому скрипту или команду. После чего скрипт добавляется в автозагрузку:

$ sudo systemctl enable mysrcipt

Источник

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

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

В этой статье мы рассмотрим как работает автозагрузка Linux, как добавить программы автозагрузки, куда их будет более правильно добавить, а также какие виды автозагрузки бывают в этой операционной системы.

Как работает автозагрузка?

Есть процессы, которые система инициализации, например, systemd, запускает по умолчанию, но также вы можете настроить чтобы она запускала нужные вам процессы. Также многими дочерними процессами выполняются файлы скриптов или имеется та или иная возможность запускать необходимые вам программы. Такая возможность есть и у большинства окружений рабочего стола.

Рассмотрим основные уровни автозагрузки которые вы можете использовать:

Дальше мы рассмотрим более подробно как использовать каждый из пунктов для автозагрузки программ, скриптов или выполнения команд в Linux.

Автозагрузка на уровне ядра

Автозагрузка на уровне ядра вряд ли будет вам очень полезной для повседневного применения, но я решил о ней упомянуть, поскольку такая возможность есть. С помощью параметра ядра init вы можете указать какую программу стоит запускать сразу после завершения инициализации ядра. Например, вы можете загрузить оболочку Bash вместо Systemd. Для этого достаточно подправить строку запуска ядра в конфигурационном файле Grub или во время запуска. Добавьте в конец параметр init:

sudo vi /boot/grub2/grub.cfg

linux /vmlinuz-4.8.0-22-generic root=/dev/mapper/systems-ubuntu ro quiet init=/bin/bash

ubuntu server автозагрузка скрипта

Но, обычно, удобнее изменить это значение временно, в меню Grub. Читайте подробнее об этом в статье параметры ядра Linux. Так не выполняется автозагрузка программы linux, но, тем не менее, иногда может быть полезно.

Автозагрузка в системе инициализации

Чаще всего, когда говорится автозагрузка Linux, подразумевается именно автозагрузка сервисов с помощью системы инициализации. В systemd очень продвинутая система управления службами. Здесь поддерживается разрешение зависимостей, параллельный запуск, отсрочка запуска и перезапуск при ошибке. В терминологии Systemd все запускаемые программы представлены файлами юнитов, в каждом юните описаны параметры программы, ее исполняемый файл, а также дополнительные требования к запуску.

Для добавления или удаления служб из автозапуска используется команда systemctl. Чтобы добавить службу в автозапуск выполните:

sudo systemctl enable имя_службы

А чтобы отключить ее автозапуск linux:

sudo systemctl disable имя_службы

Например, если вы хотите добавить в автозагрузку Apache, то нужно выполнить:

sudo systemctl enable apache

Также вы можете проверить добавлена ли уже служба в автозагрузку:

sudo systemctl is-enabled httpd

ubuntu server автозагрузка скрипта

Если вы не знаете точное имя файла сервиса, но знаете его первую букву, то можно использовать автодополнение, как и в любом другом месте терминала с помощью кнопки Tab:

ubuntu server автозагрузка скрипта

Также вы можете посмотреть все сервисы, которые были добавлены в автозагрузку с помощью команды:

systemctl list-unit-files | grep enabled

ubuntu server автозагрузка скрипта

Автозагрузка скриптов в Linux

Раньше было принято размещать все скрипты, которые запускаются по умолчанию в файле /etc/rc.local. Этот файл все еще существует, но это пережиток системы инициализации SysVinit и теперь он сохраняется только для совместимости. Скрипты же нужно загружать только с помощью Systemd.

Для этого достаточно создать простой юнит-файл и добавить его в автозагрузку, как любой другой сервис. Сначала создадим этот файл:

sudo vi /lib/systemd/system/runscript.service

[Unit]
Description=My Script Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/bin/local/script.sh
[Install]
WantedBy=multi-user.target

Осталось выставить правильные права:

sudo chmod 644 /lib/systemd/system/runscript.service

Затем обновить конфигурацию и добавить в автозагрузку Linux новый скрипт:

sudo systemctl daemon-reload
sudo systemctl enable myscript.service

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

sudo chmod u+x /usr/local/bin/script

ubuntu server автозагрузка скрипта

Автозагрузка X сервера

Часто, в легких окружениях рабочего стола и оконных менеджеров для автозагрузки программ используется автозагрузка на уровне X сервера. Все запускаемые, таким образом, скрипты будут стартовать после запуска X сервера. Чтобы настроить такую автозагрузку Linux вам будет достаточно добавить путь к нужному скрипту в файл

/.xinitrc или /etc/X11/xinit/xinitrc. Синтаксис добавляемой строки таков:

exec путь_к_скрипту &

/.xinitrc еще не существует, то его нужно создать:

Затем, чтобы добавить в автозагрузку linux скрипт, отредактируйте файл так, как вам нужно. Например, будем запускать Firefox:

ubuntu server автозагрузка скрипта

Готово. Осталось сохранить изменения. При следующем запуске X сервера сработает автозапуск Linux и выполняется эта команда. Таким же способом может выполняться автозапуск приложений linux.

Автозагрузка окружения рабочего стола

Такие мощные окружения рабочего стола как Gnome и KDE имеют свои приложения для автозагрузки. Например, в Gnome программа называется «Запускаемые автоматически приложения». Вы можете запустить ее из главного меню системы:

ubuntu server автозагрузка скрипта

Здесь вы видите все программы, которые уже добавлены в автозагрузку. Вы можете отключить каждую из них просто сняв галочку.

ubuntu server автозагрузка скрипта

Чтобы добавить новую программу или скрипт в автозагрузку нажмите кнопку «Добавить»:

ubuntu server автозагрузка скрипта

Тут вам нужно заполнить три поля:

ubuntu server автозагрузка скриптаДальше нажмите «Добавить» ваша программа появится в списке. При следующей загрузке системы, будет выполняться автозагрузка программ linux.

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

/usr/bin/local/script
export MYWAR=test

Здесь вы можете запускать на выполнение любые скрипты или команды. Часто такой подход используется для создания псевдонимов команд, объявления новых переменных и собственных функций.

Выводы

В этой статье мы рассмотрели добавление в автозагрузку linux, а также как работает автозагрузка и ее виды. Конечно, существует множество других файлов, куда бы вы могли пристроить свой скрипт, но это будет неправильно. Нужно использовать только предназначенные для этого методы, хотя бы потому, чтобы потом не забыть. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *