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

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

Содержание

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

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

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

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

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

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

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

Изучаем /etc/init.d/skeleton , на его основе создаем скрипт /etc/init.d/my_script , которым будет запускаться/останавливаться наше приложение.

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

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

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

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

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

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

Подробности в 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 . Например, строка

после включения сети выполнит скрипт script.sh. Подробнее можно почитать в man interfaces .

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

Источник

Добавление приложения в автозагрузку Linux (как запускать программу автоматически при старте ОС Linux)

Всех приветствую!

Сегодняшний вопрос (насчет автозагрузки приложений) весьма популярен, причем, как при работе в Windows, так и Linux. Разумеется, в Linux он имеет свои особенности.

Наверное, для начала сразу же следует сказать, что в Linux несколько уровней (режимов) автозагрузки. Например, есть автозагрузка на уровне ядра, на уровне скриптов (rc.local), bash, и пр. малопонятные для начинающего пользователя аббревиатуры.

И в этой заметке я бы не хотел рассматривать все «эти тонкости», а показать наипростейшие варианты добавить обычное приложение (Chrome, Firefox, и т.д. и т.п.) в автозагрузку Linux (так, чтобы оно стартовало вместе с загрузкой ОС). Думаю, большинство пользователей именно это и интересует. 😉

👉 В помощь!

Если в процессе настройки вам понадобиться указать программу вручную (которую требуется авто-загружать) — ищите исполняемый файл в каталоге: /usr/bin (для отдельных приложений, запускаемых от имени админа: /usr/sbin ).

Примеры настройки автозагрузки

Вариант 1

Для начала совет банальный — откройте настройки того приложения, которое вам нужно добавить в автозагрузку. Возможно, что среди его параметров будет заветный «флажок», позволяющий запускать приложение при старте системы. См. пример на скрине ниже. 👇

Примечание : в некоторых системах Linux подобная опция в настройках приложения может ничего не дать. (т.е. приложение не будет запускаться при загрузке ОС).

Настройки конкретного приложения / параметры запуска

Вариант 2

Теперь пару слов о панелях управления тех дистрибутивов Linux, которые я рекомендовал.

Linux Mint

В этом дистрибутиве всё гораздо проще, чем просто «просто». 👌

Сначала необходимо открыть меню ПУСК/параметры системы и перейти во вкладку «Автозагрузка» .

Параметры системы — автозагрузка (Linux Mint)

После кликнуть по «плюсику» и выбрать нужное приложение из списка. Это всё. ✌

Добавляем нужно приложение (Linux Mint)

Elementary OS

Здесь все делается практически аналогично, как в Linux Mint.

Сначала необходимо открыть параметры системы и перейти во вкладку «Приложения» .

Параметры системы — приложения (Elementary OS)

После раскрыть меню «Автозапуск» , нажать на «плюс» и выбрать нужное приложение.

Автозапуск — выбор нужного приложения (Elementary OS)

Если когда-то потом приложение необходимо будет убрать из автозагрузки — просто переведите ползунок в режим «Выкл.» . Пример см. на скриншоте ниже. 👇

Читайте также:  Linux red hat дистрибутив

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

Ubuntu

В Ubuntu также есть специальное ПО для решения этой задачи: необходимо перейти во вкладку «Система → Параметры → Запускаемые приложения» .

Для добавления своей программы необходимо нажать на кнопку «Добавить» , как в моем примере 👇. Потребуется указать имя, команду (об этом далее) и описание.

Ubuntu — добавить программу

После необходимо будет указать нужный исполняемый файл (программу) — обычно, они копируются в каталог /usr/bin (для ПО, запускаемых от имени админа — /usr/sbin ). В редких случаях может быть задействован каталог /usr/opt (один из примеров ниже 👇).

Находим нужное приложение в каталоге

Deepin

Этот дистрибутив (на мой взгляд) в плане простоты работы выигрывает у предыдущих!

Представьте, чтобы добавить программу в автозагрузку — достаточно просто кликнуть по ее значку правой кнопкой мыши и в контекстном меню выбрать оное. 👇

Как вам. (так просто даже в Windows не сделаешь!)

Как добавить ярлык на раб. стол или программу в автозагрузку

Разумеется, для исключения приложения из автозагрузки — нужно проделать обратную операцию: также кликнуть ПКМ по значку.

Теперь на приложении спец. значок — оно будет стартовать вместе с системой (Deepin)

Источник

autostart’ы в совремённом Linux

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

Уже не уверен, что все их знаю. Решил составить список, может кто чего скажет ещё по его поводу. Поскольку ориентируюсь на Debian, не исключено есть какие-то особенности в иных дистрах.

  1. /etc/init.d — (rc.0-6) — классическое место для init-скриптов для запуска разных демонов. + rc.local
  2. cron — /etc/crontab запуск чего-то по расписанию кроном и его клонами.
  3. /etc/systemd/system — сервисы, которые запускает systemd
  4. etc/xdg/autostart/ — приложения, запускаемые при загрузке десктопа, а вообще есть (но может и не быть, но автозагрузка иметься) системная переменная $XDG_CONFIG_DIRS
  5. /etc/profile, а также скрипты внутри /etc/profile.d — запускаются bash подобными оболочками.

/.bash_logout при разлогинивании
/etc/X11/xinit/xinitrc — запускается X-ами, но если есть

/.xinitrc запускается он.

  • /etc/X11/xinit/xserverrc — тоже может запускаться
  • /etc/gdm3/Xsession (gdm — для старых) если gdm3 менеджер, соответственно есть ещё: /usr/share/config/kdm/Xsession и другие
  • Автозапуск графическими оболочками, кроме автостарта десктопа есть ещё, например, автозапуск гномом (и прочими), например для гнома и кде в /usr/share/applications и для текущего пользователя в

    /.config/autostart/ для кде ещё и в

    /.config/plasma-workspace/env

  • Вообще в графических оболочках может быть дохренища всяких автозапусков на разные случаи прописано в отдельных настройках, например, в гномореестре: скринсейверы, приложения при нажатии кнопки Power и т.д.
  • Модули ядра. Загрузка прописывается в /etc/modules — сами модули лежат в подкаталогах /lib/modules/`uname -r`/ с расширением .ko
  • Может быть раздел в (U)EFI — BIOS, оттуда что-то тоже может стартануть, причём даже после загрузки ядра, если правильно понял. Как фича работает пока толком не понял.
  • /etc/udev/rules.d — менеджер устройств в Linux.
  • Источник

    Учимся управлять автозагрузкой в linux

    Написанием данной статьи меня побудила банальная задача: отключить графическую оболочку при старте системы. Казалось бы, поменять одну цифру в /etc/inittab. Но как выяснилось, все намного сложнее. Итак, разберем по полочкам, что такое inittab и systemd, для чего они нужны и как управлять автозагрузкой приложений в linux. Как человек, который самостоятельно пытается найти ответы, пришлось прочитать не одну статью, информации на эту тему много, но понимание приходит не сразу. На русскоязычных форумах как правило развернутого ответа нет. Скажу сразу, я не системный администратор и статья больше рассчитана на людей, кто относительно недавно познакомился с linux. Кому интересна данная тема, добро пожаловать.

    Это моя первая статья, если есть замечания прошу в комментарии.

    Что такое inittab

    По сути inittab представляет из себя файл в котором можно посмотреть/поменять уровень загрузки операционной системы в /etc/inittab. Давайте разберем его

    В linux существуют 7 уровней загрузки операционной системы. В нашем случае нулевой уровень — это режим восстановления, первый — это запуск в одиночном режиме под root. 2-5 загрузка в мульти пользовательском режиме (т.е. обычный режим). Отличаются они лишь набором стартовых скриптов. 6 уровень это перезагрузка. Скрипты берутся из директорий, которые расписаны в inittab. Наша система по умолчанию загружается на 5 уровне, посмотрим что-же находится в директории /etc/init.d/rc 5:

    Скрипты в этом каталоге выполняются каждый раз при старте системы. А если быть точнее это лишь символьные ссылки на сами скрипты. Первая буква означает S(start) K(kill или stop) для изменения порядка скриптов меняется цифра, т.е. запуск скриптов выполняется по возрастанию. Руками менять можно, но рекомендуется менять через «update-rc.d»

    Все просто и прозрачно.

    Что такое systemd

    Systemd является заменой старой традиционной загрузки inittab. Был разработан чтобы обеспечить лучшую обработку зависимостей. В настоящее время systemd поставляется по умолчанию с популярными дистрибутивами linux таких как Fedora, Mandira, Arch Linux, CentOS 7, Red Hat 7.0 и на удивление для меня в Debian 8.9.

    Плюсы и минусы в явном виде для меня не понятны. Интересен в первую очередь функционал. Итак разбираемся дальше. Две вещи, которые нам нужно знать:

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

    Как правило graphical.target аналог 5 уровня, запуск системы в графическом режиме.
    Чтобы посмотреть все доступные нам уровни, введем:

    проведем аналогию c inittab

    При старте системы linux смотрит в файл (который является ссылкой)

    Таким образом чтобы загрузиться в многопользовательском режиме, нам нужно сменить ссылку или использовать systemctl (делает тоже самое)

    Автозагрузка проложений

    Как мы уже поняли в каталогах /etc/rc4.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.

    Вывод: Тут должен быть вывод, но вместо него я вставлю кота

    Источник

    Власть над демонами или автозапуск в Linux

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

    Стоит сразу заметить — чтобы программа была полноценным сервисом/демоном, она должна быть соответствующе написана (link1, link2). Впрочем такое делают не всегда, хотя возможно это и не совсем правильно.

    Существуют несколько способов сделать автозапуск программ в Linux:

    • записать вызов программы/скрипта запуска в /etc/rc.local в фоновом режиме (&) (в разных дистрибутивах может лежать в разных местах, например, /etc/rc.d/rc.local) с перенаправленными потоками ввода/вывода в /dev/null. Например, «/home/user/my_prog 1 > /dev/null 2 > /dev/null &». Также, дополнительно, можно воспользоваться командой nohup;
    • внести вызов в /etc/inittab, согласно правилам его оформления. В отличие от первого способа тут можно указать уровень запуска для программы;
    • написать скрипт, позволяющий запускать/останавливать/перезапускать программу как демона, а также получать информацию о её состоянии.

    Первый способ самый лёгкий, но и самый проблемный. Файл rc.local есть не во всех дистрибутивах. В нём нельзя задать уровень запуска. Если там записано несколько программ, то сложно ими управлять как сервисами (разве что запустить или остановить все одновременно). И, под конец, запуск из него подрывает устойчивость системы от взлома (примеры можно легко найти в поисковике).

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

    Последний метод на текущий момент самый «кошерный», но немного сложнее предыдущих (возможно, на первый взгляд). Именно им представлены все системные демоны, что говорит само за себя. Потому его и рассмотрю ниже.

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

    Сразу обмолвлюсь, что у меня стоит Debian 6 и в других дистрибутивах пути могут несколько различаться.

    Автозапуск программы как демона

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

    Для начала стоит заглянуть в каталог /etc/init.d. Здесь содержатся запускные скрипты всех сервисов, а также два файла для желающих написать себе такой же:

    README и skeleton

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

    В 6-ом debian`е для запускных скриптов демонов используется LSB (Linux Script Base) Init Standart. Почитать о нём подробнее можно тут. Для систем, где LSB не используется стоит взглянуть сюда.

    Рассмотрим поближе файл skeleton. Первое с чего он должен начинаться, конечно же «#!/bin/sh», т.к. init-скрипт — запускной файл. Далее идёт комментированный заголовок:

    Может показаться, что это просто лишняя информация от автора, но это не так. То, что указано здесь используется при прописывании скрипта в систему. Тут как раз пригодится файл README, который показывает, что в заголовке skeleton перечислены не все возможные параметры. Как минимум есть ещё следующие:

    Все параметры и их полное описание (на английском) можно увидеть тут, а на русском тут и тут (спасибо awzrno за новые ссылки ^_^). К русскому варианту добавлю, что в Required-Start: можно прописать $all, тогда текущий скрипт будет запускаться после всех остальных (иногда это бывает нужно). Также X-Interactive: true показывает, что этот скрипт может взаимодействовать с пользователем, запросом на ввод чего-нибудь, например пароля.

    Далее в skeleton идёт инициализация переменных, используемых в самом скрипте. Часть из них нужно будет настроить под свои нужды. Потом проверки на то, что сам демон существует и попытка прочитать конфигурационный файл (их имена должны быть указаны в переменных выше), далее загрузка переменных rcS, а потом идёт одна из самых интересных частей init-файла:
    . /lib/lsb/init-functions
    это определение LSB функций работы с логами, LSB-статусом сервиса, работы с процессом. В некоторых дистрибутивах этот файл может находиться в каталоге /etc/init.d. Названия и часть подробностей можно узнать непосредственно из комментариев к функциям в этом файле, а также тут.

    Следующая часть — непосредственно тело скрипта. Тело состоит из условных частей, которые являются командами для демона: start, stop, restart/reload/force-reload, status. Кто-то выделяет их в отдельные функции, кто-то нет. На мой взгляд, функциями они выглядят эстетичнее и код более понятен. Все эти команды объединяет оператор выбора case, который и выбирает для исполнения нужный кусок кода, в зависимости от команды (параметра) с которой был запущен init-скрипт.

    Таким образом для создания обычного скрипта достаточно подставить в переменные в начале файла нужные значения и, возможно, немного добавить кода в функции start/stop (например загрузку/выгрузку драйвера).

    После того как файл будет готов его нужно скопировать в /etc/init.d и добавить в автозагрузку:
    update-rc.d defaults
    (или insserv для debian 6 stable и выше)
    Удалить из автозагрузки можно так:
    update-rc.d -f remove
    (или insserv -r для debian 6 stable и выше)

    Далее также можно использовать команды sysv-rc-conf в debian или service в fedora core, чтобы включить/выключить автозагрузку сервиса.

    Автозапуск графического ПО без ввода паролей

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

    Убрать запрос пароля на вход можно в центре управления (kcontrol) -> системное администрирование -> менеджер входа в систему -> удобства. Там выбрать пользователя, под которым входить (кроме рута) и поставить нужные галочки (разрешить автовход и вход без ввода пароля).

    Чтобы сделать автозапуск программы нужно в каталог /home/ /.kde/Autostart добавить ссылку на запускной файл/скрипт нужного ПО.

    Тут убрать запрос пароля на вход можно также в центре управления (gnome-control-center) -> Login Screen. Там, под рутом (ткнуть на замок, ввести пароль) выбрать пользователя, под которым входить (кроме суперпользователя).

    Для автозапуска программы опять же в центре управления выбрать Startup Applications -> Add и заполнить маленькую форму.

    Для обоих графических менеджеров:
    Если нужно запустить под обычным пользователем, но от рута, то ещё надо настроить правила в /etc/sudoers на запуск конкретной программы/набора программ от имени суперпользователя (манами рекомендуется для безопасности делать это с помощью visudo). Как это делать рассказывать не буду, т.к. в man sudoers всё хорошо расписано.

    Источник

    Читайте также:  Что такое windows logo key
    Оцените статью