Точне налаштування автозавантаження в Ubuntu Server. Як до Linux додати програму в автозавантаження? Ubuntu автозавантаження програм

У Убунту є 2 основних рівня автозапуску - в системі ініціалізації системиd і в робочому оточенні. Для користувальницького софту автозавантаження в Ubuntu може бути налаштовано у зручній графічній утиліті. Додати до автозапуску можна програму або власний скрипт.

Автозавантаження в Ubuntu

Актуальна Ubuntu 18.04 за умовчанням як робоче оточення використовує GnomeShell. Для налаштування автозапуску в цій версії ОС потрібно:

Порада! Щоб не помилитись з правильністю команди, потрібно встановити утиліту «Головне меню» з UbuntuSoftwareCenter.

У ній вибрати пункт, що цікавить, і відкрити його властивості. Правильна команда копіюється з однойменного рядка.

Запуск додатків в Ubuntu, присутніх у списку та позначених галочкою, буде відбуватися при кожному старті ОС. Все це додатки даного користувача, системні програмита сервіси, утиліта не відображає. У попередніх версіях операційної системи з графічною оболонкою Unity утиліта для налаштування автозавантаження також шукається пошуком меню Dash або відкривається за допомогою команди в терміналі:

gnome-session-properties.

Як додати скрипт до автозавантаження Ubuntu

Крім конкретного софту, додати автозавантаження Linux легко і самописний скрипт, щоб оптимізувати роботу за комп'ютером. Для цього необхідно:

  1. Зробити скрипт виконуваним за допомогою команди:

    sudochmodugo+x /home/user/script.sh

    (Де user - ім'я користувача, а script - назва скрипта, але шлях до вашого файла.sh може відрізнятися: його потрібно прописати повністю, інакше скрипт не запуститься).

  2. Відкрити «Програми, що запускаються автоматично» і натиснути «Додати».
  3. Введіть ім'я скрипта, а в якості команди - повна назва за допомогою до файлу, наприклад, /home/user/script.sh .
  4. Клікнути по «Додати».

Є інший, класичний, але спосіб, що вважається застарілим, налаштувати автозапуск скрипта в Ubuntu. Для його виконання необхідно:


Цей спосіб підійде і для автозавантаження UbuntuServer, де немає графіки.

Відстрочка автозапуску програм в Ubuntu

Якщо програм в автозавантаженні Убунту дуже багато, їх необхідно підвантажувати в певному порядку або запускати через якийсь час після завантаження системи – допоможе функція відстрочення. Для її активації використовується unix-утиліта sleep. Скористатися можливостями цього інструменту можна у вже знайомій програмі «Програми, що запускаються автоматично». Для цього потрібно:

  1. Відкрити вікно параметрів програм, що запускаються.
  2. Виділити курсором програму, автозапуск якої необхідно відстрочити, та скористатися кнопкою «Змінити».
  3. У рядку «Команда» перед записом внести:

де цифра після слова «спати» дорівнює кількості секунд, що програма не діє відразу після старту системи, перед тим як запуститися. Між цією формулою, наприкінці якої обов'язкова точка з комою, та командою на запуск програми, має бути пробіл.

У наведеному прикладі відкладеного автозавантаження програм в Ubuntu програма залишається в стані «сну» 2 хвилини, перш ніж відкритись. Наприклад, запуск через півгодини після старту ОС буде виглядати як sleep 3h "ім'я програми". Приклад, у якому Transmission запускається через 1 годину:

sleep 1h; transmission-gtk %U

Аналогічним чином можна додати в автозавантаження в Linux відстрочене виконання скрипта користувача або запуск медіафайлу.

Видалення з автозапуску Ubuntu

Щоб прибрати софт з автозавантаження Ubuntu, можна скористатися одним із 2 способів: через «Автоматично запущені програми» або вручну. У першому випадку достатньо запустити утиліту, виділити потрібну програму та натиснути "Видалити". Просте зняття галочки відключається програма, і вона не запускатиметься при старті системи.

Ручний спосіб передбачає використання папки autostart в Ubuntu. Вона розташована за адресою /home/ім'я користувача/.config/autostart/ (щоб побачити цю приховану папку, слід відкрити домашній каталог файловому менеджеріі одночасно натиснути клавіші Ctrl+H). В ній лежать файли з розширенням. Desktop для кожної програми з автозапуску, що формуються автоматично при додаванні через графічну утиліту. Достатньо видалити файл, щоб програма більше не відкривалася під час увімкнення комп'ютера.

Висновок

Автозавантаження в Ubuntu має безліч способів тонкої настройки. Її можливості важко охопити. Грамотне використання цього інструменту робить ОС Linux практичнішим у повсякденних завданнях.

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

У цій статті ми поговоримо про те, як працює автозавантаження в Ubuntu, які існують способи автозавантаження в цій системі та як додати туди програми.

АВТОЗАВАНТАЖЕННЯ В UBUNTU

Насамперед слід сказати, що в Ubuntu існує кілька рівнів автозавантаження. Я не говоритиму тут про systemd і тому, що вже розглядав це в одній з перших статей. Програму або скрипт можна додати до автозавантаження такими шляхами:

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

Ми розглянемо перші два способи, оскільки останні два розраховані на скрипти, а не програми. Спочатку автозавантаження в Ubuntu за допомогою стандартної утиліти.

Відкрийте меню системи та наберіть «Авто»і відкрийте програму, яка буде першою у списку, Автоматично запускаються програми:

Тут будуть перераховані всі програми, які зараз запускаються автоматично. Щоб додати до автозавантаження ubuntu ще одну програму, натисніть кнопку «Додати»:

Тут потрібно ввести ім'я нового пункту, а також команду запуску програми. Ви можете вибрати додаток у файловій системі, якщо не пам'ятайте шлях, натиснувши кнопку «Огляд»:

У команді можна вказувати настройки, якщо це потрібно. Ще можна заповнити поле «Опис»але це вже необов'язково. Якщо вам потрібна певна програма з головного меню, але ви не знаєте, де її знайти і як пишеться її команда, можна подивитися її в тому ж меню. Але для цього нам потрібно спочатку встановити утиліту "Головне меню"із центру додатків:

Тут вам потрібно звернути увагу на рядок Команда, скопіюйте її та можете використовувати для автозавантаження.

Наступний спосіб – це папка автозавантаження. Вона знаходиться за адресою ~/.config/autostart. По суті, це той самий спосіб, тільки він може виконуватися без графічного інтерфейсу. Коли ви налаштовуєте автозавантаження через програму, у цій папці створюються файли налаштувань з ім'ям desktop. Ось наприклад:

Нагадую, що для того, щоб переглянути приховані файли, потрібно натиснути клавіші Ctrl+H. Тепер спробуємо створити новий файл конфігурації для ще однієї програми. Ось таким буде його синтаксис:


Type = Application
Name = ім'я_нового_пункту
Exec = команда
Icon = повний_шлях_до_іконки
Comment = коментар
X-GNOME-Autostart-enabled = true

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

vi ~/.config/autostart/vlc.desktop


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

Готово, і найцікавіше, що якщо ви відкриєте програму автозавантаження. То там також з'явиться цей пункт. Це такий спосіб налаштування без графічного інтерфейсу.

ВИСНОВКИ

У цій невеликій статті ми розглянули як налаштовується автозавантаження програм ubuntu у різний спосіб- через графічний інтерфейс та термінал. Ви можете використовувати ці знання, щоб зробити роботу у вашій системі зручнішою. Навіть незважаючи на те, що Ubuntu перейшла на Gnome, автозавантаження в ubuntu 16.04 зараз виглядають практично однаково. Якщо у вас залишилися питання, запитуйте в коментарях!

Схожі записи:


Створюємо порожній файл.

Першим рядком пишемо:

#!/bin/sh

Цей рядок вказує, яку командну оболонку потрібно використовувати. Далі свої команди.

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

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

#!/bin/sh -e #Тут вставляємо рядок із зазначенням вашого скрипту. /usr/sbin/mescripts exit 0

Трохи складніший спосіб

Дозволяє задати послідовність завантаження та поведінку скрипта при різних runlevel"ах.

Вивчаємо /etc/init.d/skeleton , на його основі створюємо скрипт /etc/init.d/my_script , яким запускатиметься/зупинятиметься наша програма.

У цих директоріях лежать скрипти зупинки сервісів:

/etc/rc0.d/ /etc/rc1.d/ /etc/rc6.d/

у цих - скрипти запуску сервісів:

/etc/rc2.d/ /etc/rc3.d/ /etc/rc4.d/ /etc/rc5.d/

Вивчаємо їх на предмет послідовності (що менше перша цифра на початку скрипту, тим раніше запускається/зупиняється додаток). Це може бути критично, якщо ваш додаток буде залежати від якихось сервісів.

Після того, як визначилися зі скриптом запуску та черговістю, виконуємо наступне:

Sudo update-rc.d my_script start 70 2 3 4 5 . stop 20 0 1 6 .

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

Якщо щось не сподобалося – все можна видалити

Sudo update-rc.d -f my_script remove

Подробиці в man update-rc.d.

Виконання скрипту під час увімкнення/вимкнення мережі

Є директорія /etc/network/ з піддиректоріями if-down.d, if-pre-up.d, if-post-down.d, if-up.d. Якщо розмістити скрипт в одній з цих піддиректорій, то він буде виконуватися відповідно при вимиканні, перед увімкненням, після вимкнення або увімкнення мережі.

Інший спосіб - вказати у файлі /etc/network/interfaces одну з наступних директив: up, pre-up, post-up, down, pre-down, post-down. Наприклад, рядок

Post-up /path/to/script.sh

після увімкнення мережі виконає скрипт script.sh. Докладніше можна почитати в man interfaces.

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

А головне, повністю безкоштовна операційна система, побудована на ядрі Linux Тому все більше власників комп'ютерів стає її користувачами. Якщо в їх число потрапили і ви, то вам варто, ні, не навчитися - вчитися там нічому - лише зрозуміти і освоїти основи управління. Наприклад, як налаштувати автозапуск додатків та сервісів у Ubuntu.

Автозавантаження в Ubuntu – такий самий процес, як і на інших ОС. Ви, мабуть, пам'ятаєте і уявляєте, як на Windows при включенні ПК відразу ж запускалися Skype, uTorrent і ще ряд програм. На Убунт є кілька програм, які аналогічним чином включаються разом з комп'ютером. Їх список можна змінити як вам зручно: видалити зайві або додати ще кілька.

Додавання процесів

Додати новий сервіс, утиліту чи команду в автозавантаження Ubuntu зовсім не складно. Робиться це за допомогою меню.


Додавати таким чином можна не лише утиліти, а й сервіси. Тільки у верхньому рядку потрібно вибрати відповідний тип, якщо він є, а також вписати потрібну команду. Головне – знати її.

Відстрочка

В Убунту є також чудова можливість робити відстрочку включення - як на сучасних духових шафах або мультиварках. Вона робиться за допомогою невеликого доповнення до тексту команди. Яке виглядає так: «sleep 20;» (Без лапок). Замість 20 можна вписати будь-яке число, яке означатиме кількість секунд, які процес «спить» перед тим, як запуститися. Таким чином, ви можете дати системі час повністю завантажитися, після чого вже почнуть включатися певні сервіси або програми.

Вилучення

Якщо ви вже пробували додавати програми в автоматичний старт, то розумієте, що видалити їх звідти буде дуже легко.

  1. Знову заходимо в утиліту керування автозавантаженням.
  2. Знаходимо ті процеси, які нам не потрібні.
  3. Виділяємо їх, тиснемо "Видалити".

Тепер зайві процеси будуть прибрані з автозапуску Ubuntu. Краще мати там лише найнеобхідніше.

Варто розуміти, що якщо додати багато програм в автозавантаження Ubuntu, ОС завантажуватиметься набагато повільніше. Тому краще не переборщуйте та правильно регулюйте налаштування автоматичного запуску. Функція справді дуже зручна і разом із відстрочкою запуску дає хороший інструментдля автоматичного регулювання процесів системи.

Після запуску комп'ютера зазвичай нам доводиться запускати деякі програми. якими ми користуємося найчастіше. Також після запуску системи нам може знадобитися виконати якісь специфічні дії, наприклад створити потрібні файли або встановити деякі параметри. Дуже незручно робити це вручну. Для вирішення таких завдань є автозавантаження.

У цій статті ми розглянемо, як працює автозавантаження Linux, як додати програми автозавантаження, куди їх буде більш правильно додати, а також які види автозавантаження бувають у цій операційній системі.

Щоб зрозуміти, як працює автозавантаження, спочатку потрібно згадати, що відбувається під час . Як тільки ядро ​​завершить свою ініціалізацію та буде готове до подальшої роботи, воно передасть управління системі ініціалізації. Система ініціалізації – це основний процес, саме він запускає всі інші процеси у системі.

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

Розглянемо основні рівні автозавантаження, які ви можете використовувати:

- Ви можете вказати будь-яку програму, яка запускатиметься після старту ядра замість системи ініціалізації;- запуск основних системних сервісів, додаткових сервісів та ваших скриптів на етапі ініціалізації системи;- застарілий метод завантаження скриптів, що виконується перед запуском графічного оточення;- Ви можете виконувати свої скрипти або команди після запуску менеджера входу, але перед запуском оточення;- запуск потрібних програмабо скрпітів відразу після старту X сервера;- більшість оточення підтримують автозавантаження програм, там навіть можна налаштувати відкладений запуск та інші параметри;- останній варіант - це автозавантаження на рівні окремої командної оболонки, ви можете виконувати потрібні команди автоматично, як тільки буде запущено термінал.

Автозавантаження на рівні ядра навряд чи буде вам дуже корисним для повсякденного застосування, але я вирішив про нього згадати, оскільки така можливість є. За допомогою параметра ядра 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

Але зазвичай зручніше змінити це значення тимчасово, в меню Grub. Читайте докладніше про це у статті. Так не виконується автозавантаження програми linux, але іноді може бути корисно.

Найчастіше, коли йдеться про автозавантаження Linux, мається на увазі саме автозавантаження сервісів за допомогою системи ініціалізації. У systemd дуже просунута система. Тут підтримується роздільна здатність залежностей, паралельний запуск, відстрочка запуску та перезапуск при помилці. У термінології Systemd всі програми, що запускаються, представлені файлами юнітів, у кожному юніті описані параметри програми, її виконуваний файл, а також додаткові вимоги до запуску.

Для додавання або видалення служб автозапуску використовується команда systemctl. Щоб додати службу до автозапуску, виконайте:

sudo systemctl enable ім'я служби

А щоб вимкнути її автозапуск linux:

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

Наприклад, якщо ви хочете додати автозавантаження Apache, то потрібно виконати:

sudo systemctl enable apache

Також ви можете перевірити чи додана вже служба в автозавантаження:

sudo systemctl is-enabled httpd

Якщо ви не знаєте точне ім'я файлу сервісу, але знаєте його першу літеру, то можна використовувати додаток, як і в будь-якому іншому місці терміналу за допомогою кнопки Tab:

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

systemctl list-unit-files | grep enabled

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

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

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


Description=My Script Service
After=multi-user.target


Type=idle
ExecStart=/usr/bin/local/script.sh


WantedBy=multi-user.target

У секції Unitми даємо короткий опис нашому файлу та говоримо за допомогою опції After, що потрібно запускати цей скрипт у розрахованому на багато користувачів режимі (multi-user). Секція Serviceнайважливіша, тут ми вказуємо тип сервісу - idleЦе означає, що потрібно просто запустити і забути, вести спостереження немає необхідності, а потім у параметрі ExecStartвказуємо повний шлях до нашого скрипту.

Залишилося виставити правильні права:

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

У параметрах ми передаємо утиліти адреси файлу скрипта. Виконуваність - це обов'язковий параметр всім способів.

Часто, у легких оточеннях робочого столу та віконних менеджерів для автозавантаження програм використовується автозавантаження на рівні сервера X. Всі скрипти, що запускаються, таким чином будуть стартувати після запуску X сервера. Щоб налаштувати таке автозавантаження Linux, вам буде достатньо додати шлях до потрібного скрипту у файл ~/.xinitrc або /etc/X11/xinit/xinitrc. Синтаксис рядка, що додається, такий:

exec шлях_до_скрипту &

Якщо файлу ~/.xinitrc ще не існує, його потрібно створити:

cp /etc/X11/xinit/xinitrc ~/.xinitrc

Потім, щоб додати автозавантаження linux скрипт, відредагуйте файл так, як вам потрібно. Наприклад, будемо запускати Firefox:

exec /usr/bin/firefox &

Такі потужні оточення робочого столу, як Gnome та KDE, мають свої програми для автозавантаження. Наприклад, у Gnome програма називається "Програми, що запускаються автоматично". Ви можете запустити її з головного меню системи:

Тут ви бачите всі програми, які вже додані до автозавантаження. Ви можете вимкнути кожну з них, просто знявши галочку.

Щоб додати нову програмуабо скрипт автозавантаження натисніть кнопку "Додати":

Тут вам потрібно заповнити три поля:

  • Ім'я- довільне ім'я для команди, яким ви зможете її знайти;
  • Команда- Повний шлях до виконуваного файлу програми;