Меню Рубрики

Команда при запуске linux

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

Если на вопрос: «как добавить программу в автозагрузку?» — начинающие пользователи находят ответ достаточно быстро, то вопрос о запуске скрипта, при выключении/перезагрузки, ставит их в тупик. В статье будет описан стандартный способ для автоматического выполнения команд при включении и выключении linux, а также более простой способ для пользователей, у которых установлен gdm и графический интерфейс, например ubuntu.

Консольный вариант.

Немного теории.
Следует знать, что в Linux существует 7 уровней запуска. Однако, использоваться могут только 6.
Как у всех уважающих себя программ отсчёт начинается с 0-ля.
0 — Остановка или выключение системы.
1 — Однопользовательский режим.
2 — Многопользовательский режим, но без поддержки сети.
3 — Тоже самое, но с сетью.
4 — Добавили для красоты Не используется.
5 — Графический режим с загрузкой X сервера.
6 — Перезагрузка.
Если перейти в папку /etc (В некоторых дистрибутивах /etc/rc.d) то можно увидеть папки с 7-мью уровнями запуска.

Например при выключении компьютера, выполнятся все скрипты из папки rc0.d

Тут следует остановится по подробнее. Дело в том, что самих скриптов (а точнее сценариев) в этой папке нету, а есть только ссылки на файлы, которые лежат в папке /etc/init.d. Эти сценарии выполняют различные задачи, в зависимости от параметра start или stop (например /etc/init.d/reboot start и /etc/init.d/reboot stop это разные команды, а /etc/init.d/reboot вообще не будет работать). Если в ссылке стоит первая буква S, то значит сценарию подаётся параметр start, а если стоит буква K(от слова kill), то параметр stop. Цифра после буквы обозначает порядок выполнения сценария.
Например, на выше вставленном скриншоте вначале выполниться команда /etc/init.d/hddtemp stop, а уже позже /etc/init.d/networking start.
Хватит теории. Переходим к практике.
Для того, чтобы добавить команду в автозагрузку, достаточно поместить её в файл /etc/rc.local.

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

И помещаем наши команды чуть выше строчки с exit 0.
Для того, что бы команды выполнялись перед выключением или перезагрузкой нам нужно создать сценарий в папке /etc/init.d

Вставляем следующий код:

Если будет подаваться только один сигнал, то просто закомментируйте строку поставив в начале команды знак #
Например

Теперь делаем файл исполняемым:

Создать ссылки можно вручную, но проще это сделать через команду update-rc.d
Например:

Точки важны (обе). Исследуя просторы интернета, у меня сложилось впечатление, что синтаксис этой программы иногда меняется. Актуальные примеры можно посмотреть по команде «man update-rc.d». Примеры будут в низу.

Эта команда создаст по 2 ссылки в каталогах /etc/rc0.d (второе число в команде) и /etc/rc6.d (третье число в команде). Причём вначале будет выполняться сценарий с параметром stop (т.к. стоит 1), а уже потом с параметром start (т.к. стоит 20).
Если второй параметр не нужен, то можно выполнить команду:

Советую ставить приоритет повыше (т.е. число после start или stop должно быть маленьким), желательно меньше 20. В обратном случае у меня иногда зависал компьютер при попытке перезагрузиться.

Для пользователей ubuntu, да и многих других современных дистрибутивов с gdm можно воспользоваться…

Графический вариант.

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

Для выполнения скрипта при выключении компьютера, помещаем его в файл /etc/gdm/PostSession/Default

Источник

Information Security Squad

stay tune stay secure

🐧 Как выполнить команду или скрипт при перезагрузке или запуске системы

Хорошо известные сервисы на Linux могут быть добавлены на старт при загрузке системы без каких-либо проблем.

Например, если вы хотите добавить службу Apache Httpd при загрузке, вы можете сделать это с помощью команд chkconfig и systemctl.

Иногда вам нужно добавить собственный скрипт или команду или службу при загрузке, и как это сделать?

Вы можете сделать это, используя следующие три метода.

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

Метод 1: Как запустить скрипт или команду при перезагрузке или запуске системы с помощью файла /etc/rc.d/rc.local

Файл «/etc/rc.local» традиционно выполняется после того, как все обычные службы были запущены в конце процесса перехода в многопользовательский уровень выполнения.

Этот метод также работает в системе systemd.

Источник

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

Вы когда-то задумывались, что происходит «за кулисами», когда вы загружаете систему Linux и входите в систему? Нажимая кнопку питания или запуская виртуальной машины, вы провоцируете ряд событий, которые приводят к активации полностью функциональной системы — иногда менее чем за минуту. То же самое происходит при выходе из системы и/или выключение системы.

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

В этой статье мы обсудим традиционные методы достижения этих целей в Linux.

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

Выполнение скриптов Linux во время перезагрузки или запуска

Существует два традиционных метода выполнения команды или запуска скриптов во время запуска:

Метод № 1 — Использование планировщика задач cron

Помимо обычного формата (минута / час / день месяца / месяц / день недели), который широко используется для указания расписания, планировщик cron также позволяет использовать @reboot. Эта директива, за которой следует абсолютный путь к скрипту, заставляющий её работать при запуске машины.

Однако для этого подхода есть два важных нюанса:

  • Обязательно должен быть запущен демон cron;
  • Сценарий или файл crontab должен включать переменные среды (если они есть), которые понадобятся.

Метод № 2 — Использование /etc/rc.d/rc.local

Этот метод действителен даже для системных задач. Чтобы этот метод работал, вы должны установить разрешения на выполнение для файла /etc/rc.d/rc.local следующим образом:

Затем добавьте скрипт в конце файла.

Ниже показано, как запустить два примера скриптов (/home/gacanepa/script1.sh и /home/gacanepa/script2.sh) с использованием задания cron и rc.local соответственно и их соответствующих результатов.

script1.sh:

script2.sh:

Имейте в виду, что оба сценария должны иметь разрешения на выполнение:

Выполнение скриптов Linux при входе/выходе из системы

Чтобы выполнить скрипт при входе в систему или выходе из системы, используйте

/.bash_logout, соответственно. Скорее всего, вам нужно будет создать последний файл вручную. Просто оставьте строку, ссылающуюся на ваш скрипт в нижней части каждого файла так же, как и раньше, и все будет работать.

Итоги

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

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University.

Источник

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

Содержание

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

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

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

Сохраним его под оригинальным названием (чтоб не совпадал с уже существующими) в каталоге /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 .

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

Источник

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

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

  • Команда поиска файла linux
  • Команда перехода в каталог linux
  • Команда переноса файлов в linux
  • Команда остановки процесса в linux
  • Команда монтирования диска linux