Учимся управлять автозагрузкой в linux
Написанием данной статьи меня побудила банальная задача: отключить графическую оболочку при старте системы. Казалось бы, поменять одну цифру в /etc/inittab. Но как выяснилось, все намного сложнее. Итак, разберем по полочкам, что такое inittab и systemd, для чего они нужны и как управлять автозагрузкой приложений в linux. Как человек, который самостоятельно пытается найти ответы, пришлось прочитать не одну статью, информации на эту тему много, но понимание приходит не сразу. На русскоязычных форумах как правило развернутого ответа нет. Скажу сразу, я не системный администратор и статья больше рассчитана на людей, кто относительно недавно познакомился с linux. Кому интересна данная тема, добро пожаловать.
Это моя первая статья, если есть замечания прошу в комментарии.
Что такое inittab
По сути inittab представляет из себя файл в котором можно посмотреть/поменять уровень загрузки операционной системы в /etc/inittab. Давайте разберем его
# The default runlevel. id:5:initdefault: # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6
В linux существуют 7 уровней загрузки операционной системы. В нашем случае нулевой уровень — это режим восстановления, первый — это запуск в одиночном режиме под root. 2-5 загрузка в мульти пользовательском режиме (т.е. обычный режим). Отличаются они лишь набором стартовых скриптов. 6 уровень это перезагрузка. Скрипты берутся из директорий, которые расписаны в inittab. Наша система по умолчанию загружается на 5 уровне, посмотрим что-же находится в директории /etc/init.d/rc 5:
Скрипты в этом каталоге выполняются каждый раз при старте системы. А если быть точнее это лишь символьные ссылки на сами скрипты. Первая буква означает S(start) K(kill или stop) для изменения порядка скриптов меняется цифра, т.е. запуск скриптов выполняется по возрастанию. Руками менять можно, но рекомендуется менять через «update-rc.d»
usage: update-rc.d [-n] [-f] basename remove update-rc.d [-n] basename disable|enable [S|2|3|4|5] -n: not really -f: force
Что такое systemd
Systemd является заменой старой традиционной загрузки inittab. Был разработан чтобы обеспечить лучшую обработку зависимостей. В настоящее время systemd поставляется по умолчанию с популярными дистрибутивами linux таких как Fedora, Mandira, Arch Linux, CentOS 7, Red Hat 7.0 и на удивление для меня в Debian 8.9.
Плюсы и минусы в явном виде для меня не понятны. Интересен в первую очередь функционал. Итак разбираемся дальше. Две вещи, которые нам нужно знать:
Чтобы посмотреть уровень загрузки, введем команду:
root@asterisk:/home/rus# systemctl get-default graphical.target root@asterisk:/home/rus# runlevel N 5
Как правило graphical.target аналог 5 уровня, запуск системы в графическом режиме.
Чтобы посмотреть все доступные нам уровни, введем:
проведем аналогию c inittab
Runlevel Описание Systemd 0 poweroff.target 1 rescue.target 2 multi-user.target 3 multi-user.target 4 multi-user.target 5 graphical.target 6 reboot.target
При старте системы linux смотрит в файл (который является ссылкой)
root@asterisk:/home/rus# ls -la /etc/systemd/system/default.target lrwxrwxrwx 1 root root 37 ноя 27 14:45 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target
Таким образом чтобы загрузиться в многопользовательском режиме, нам нужно сменить ссылку или использовать systemctl (делает тоже самое)
Автозагрузка проложений
Как мы уже поняли в каталогах /etc/rc5.d/* лежат символьные ссылки на скрипты. Где цифры от 5 это уровень загрузки у inittab или systemd. Мы можем менять руками порядок запуска, убирать и добавлять. По сути systemd пробежится по всем файлам и попытается их инициализировать при старте системы. Теперь разберем управление через команды:
chkconfig — нужна для просмотра сервисов(программ). Поддерживает режим изменения для любого уровня загрузки.
update-rc.d — служит для запуска/остановки скриптов, при старте/выключении системы. Собственно через нее мы и будем менять автозапуск графической оболочки KDE(kdm). Так уж получилось, что у меня запуск окружения KDE включен для 2-5 уровней по умолчанию.
При старте системы я отключаю 2-4 уровень загрузки и проверяю что у меня стоит 3-й уровень загрузки
Перезагружаюсь и вижу приглашение консоли tty. profit
На самом деле, это чуть больше чем консоль. Мы можем переключаться между вкладками.
CTRL+ALT+(F1-F6)
команда startx запустит графику KDE.
Вывод: Тут должен быть вывод, но вместо него я вставлю кота
Список используемой литературы:
Как в ОС Astra Linux добавить программу в автозапуск
Для удобства многие пользователи добавляют часто используемые приложения и программы в автозагрузку операционной системы, благодаря этому сразу после запуска ОС можно приступать к работе, не тратя время на ручной запуск необходимых программ. Автозагрузка есть в любой ОС, в том числе и в Astra Linux. Настроить автозагрузку в ОС Astra можно несколькими способами, сегодня рассмотрим самый простой вариант, с помощью которого сделать это сможет любой пользователь, да же не самый опытный.
Автоматический запуск программ после загрузки ОС
Добавить в автозагрузку можно любую программу, например, браузер, офисное приложение, почтовый клиент и т.д. В сегодняшней статье в качестве примера возьмем браузер «Firefox» .
Для начала необходимо открыть «Панель управления» через главное меню.
Далее в открывшемся окне открываем раздел «Система» и ищем пункт «Автозапуск».
Теперь с помощью пункта «Добавить приложение» ищем необходимое в списке, в нашем случае это будет браузер «Firefox» и жмем «Да».
Остается только применить настройки, перезагрузить систему и проверить запускается ли добавление приложение.
Есть еще одна вкладку «Общесистемный автозапуск», там добавляются и запускаются системные приложения, например, «Сеть» которая отвечает за значок в трее, если её отключить то он не будет отображаться. Вообще тут лучше ничего не менять, особенно если в этом нет понимания.
Вот таким образом в операционной системе Astra Linux можно добавить программу в автозагрузку, как видите в этом нет ничего сложного, но если остались вопросы то обязательно спрашивайте!
Как добавить программу в автозагрузку Linux Astra через терминал?
Друзья, продолжаем изучение отечественной операционной системы Astra Linux. Очередь дошла до пользовательских программ. Сегодня расскажу о самых очевидных способах добавления или удаления программ из автозапуска в Linux.
Большинство пользовательских программ, таких как torrent клиент (или яндекс браузер) можно добавить в автозагрузку через меню «Пуск»- «Панель управления». Знакомо, не правда ли?
Открыв оснастку мы увидим список программ. Недавно мы с вами делали скриншоты в linux и устанавливали для этого программу Shutter. Можно установить флажок напротив нее и тем самым, добавить ее в автозапуск:
Не все программы, установленные в Astra Linux попали в список Автозапуска. Например, торрент клиент. Как добавить торрент в автозагрузку?
Первый способ — через меню автозапуска:
Файлы устанавливаемых программ попадают в папки /bin. По сути мы сейчас должны добавить команду на запуск:
Можно здесь же прописать команды на запуск в терминале. Имя команды всегда можно посмотреть в свойствах ярлыка нужной программы в меню или на рабочем столе. Не забываем указать имя приложения, чтобы в списке было понятно, и ярлык можно выбрать
Если программы устанавливаются в качестве службы, то их автозапуск можно определять командой systemctl
смотреть список уже запущенных служб можно так:
systemctl list-unit-files | grep enabled
Список неработающих служб выводим так:
systemctl list-unit-files | grep disabled
Добавить службу в автоЗапуск вместе с ситстемой можно так:
systemctl enable «имя службы»
Отключение запуска служб вместе с системой:
systemctl disable «имя службы»
Останов запущенной службы принудительно:
systemctl start «имя службы»
Запуск остановленной службы принудительно:
Удаление программы из списка автозапуска в Linux Astra происходит легко и привычно:
Можно достаточно гибко настраивать автозапуск, используя команду sleep. Очень простая в использовании и полезная вещь, когда требуется тонкая настройка.
Если вам нужно отсрочить запуск нужной программы — указываем число секунд ( минут m, часов h, d дней) задержки:
Способов настройки автозапуска достаточно много. Можно настраивать его даже на уровне запуска ядра. Но это материал других статей, все это подробно мы еще изучим! Удачи!