debian запуск скрипта при загрузке

Управление автозагрузкой в debian

Скрипты инициализации также важны во время запуска и останова системы (в *nix системах просто меняется“runlevel”). Если вы посмотрите на список процессов, запущенных на вашей машине (попробуйте команду ps auwx), то есть вероятность, что процесс с наименьшим PID будет называться “init”. Это родительский процесс для всех процессов, это первая программа которую ядро запускает при загрузке. Программа init, которую можно найти по пути /sbin/init, ответственна за в рабочее состояние после того, как загрузится ядро.

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

Далее мы рассмотрим их все и приведем несколько примеров их использования.

update-rc.d

Синтаксис update-rc.d

update-rc.d [-n] [-f] name remove
update-rc.d [-n] name defaults [NN | NN-start NN-stop]
update-rc.d [-n] name start|stop NN runlevel runlevel start|stop NN runlevel runlevel

Когда запускается с опциями defaults, start или stop, update-rc.d создает ссылки /etc/rcrunlevel.d/[SK]NNname указывающие на скрипт /etc/init.d/name. Если какие-либо файлы уже существуют, то update-rc.d ничего не делает. Это объясняется тем, что системный администратор может изменить порядок ссылок, при условии, что как минимум одна ссылка сохранится, без того чтобы конфигурация была перезаписана.

Доступные опции.

Примеры использования update-rc.d

Вставить ссылки с использованием defaults:

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

Если вы хотите удалить скрипт из автозагрузки, то используйте следующую команду:

Если вы хотите узнать о команде update-rc.d больше, то прочтите страницу man.

rcconf

Rcconf позволяет управлять тем, какие сервисы будут запускаться когда система загружается или уходит в перезагрузку. Утилита показывает меню, содержащее все сервисы, которые должны быть запущены при загрузке. Те, которые должны запускаться помечены и вы можете включить или выключить отдельные сервисы. Эта утилита конфигурирует системные сервисы во взаимодействии с системными уровнями загрузки (runlevels). Она включает или выключает сервисы с применением скриптов в /etc/init.d/. Rcconf работает с конфигурацией уровней загрузки в стиле System-V. Фактически это TUI(Text User Interface) к команде update-rc.d

Rcconf получает список сервисов от /etc/init.d и просматривает директории /etc/rc?.d чтобы определить запущен сервис или нет.

Если число (NN в /etc/rc?.d/NNname) не равно 20 (по умолчанию), то rcconf сохраняет имя сервиса и число в /var/lib/rcconf/services так что возможно восстановить конфигурацию сервиса в исходном состоянии.

Установка rcconf в Debian.

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

Если будет выводится сообщение rcconf needs dialog or whiptail, то необходимо будет установить утилиту dialog:

Теперь запустив rcconf Вы увидите на экране следующее:

debian запуск скрипта при загрузке. rcconf. debian запуск скрипта при загрузке фото. debian запуск скрипта при загрузке-rcconf. картинка debian запуск скрипта при загрузке. картинка rcconf. Скрипты инициализации также важны во время запуска и останова системы (в *nix системах просто меняется“runlevel”). Если вы посмотрите на список процессов, запущенных на вашей машине (попробуйте команду ps auwx), то есть вероятность, что процесс с наименьшим PID будет называться “init”. Это родительский процесс для всех процессов, это первая программа которую ядро запускает при загрузке. Программа init, которую можно найти по пути /sbin/init, ответственна за в рабочее состояние после того, как загрузится ядро.

Важные файлы:

Если вы хотите узнать больше об утилите rcconf, то ознакомьтесь со страницей man.

file-rc

Этот пакет предоставляет альтернативный механизм для загрузки или остановки системы и смены уровней загрузки. Ссылки /etc/rc?.d/* будут сконвертированы в единый конфигурационный файл /etc/runlevel.conf который легче администрировать, чем символьные ссылки и который более гибок. Пакет автоматически сконвертирует ваши существующие символьные ссылки в файл во время установки и конвертирует файл обратно в символьные ссылки при удалении. Оба механизма совместимы посредством скриптов /etc/init.d/rc, /etc/init.d/rc*, /usr/sbin/update-rc.d и /usr/sbin/invoke-rc.d

Установка file-rc в Debian.

В ходе установки в русифицированной версии Debian выводятся следующие сообщения:

Следующие НОВЫЕ пакеты будут установлены:
file-rc
0 пакетов обновлено, 1 установлено новых, 0 пакетов отмечено для удаления, и 42 пакетов не обновлено.
Необходимо получить 39,2 kB архивов. После распаковки 184 kB будет занято.
Следующие пакеты имеют неудовлетворённые зависимости:
sysv-rc: Конфликтует: file-rc но устанавливается 0.8.12.
Следующие действия разрешат зависимости:

Удалить следующие пакеты:
1) sysv-rc

Текущее состояние: 41 обновлён [-1].

Конфигурационный файл file-rc расположен в /etc/runlevel.conf. Если вы хотите посмотреть конфигурационный файл по умолчанию, то это можно сделать здесь.

Пример:

Если вы хотите узнать больше деталей о file-rc, то читайте страницу man.

Источник

Автозапуск собственного скрипта после перезагрузки системы Debian 8.x

Автозапуск собственного скрипта после перезагрузки системы Debian 8.x

Post by NORMANN » Sun Apr 24, 2016 2:34 pm

Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x

Post by userV » Mon Apr 25, 2016 12:43 pm

Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x

Post by NORMANN » Mon Apr 25, 2016 2:17 pm

Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x

Post by userV » Mon Apr 25, 2016 3:39 pm

Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x

Post by NORMANN » Mon Apr 25, 2016 3:46 pm

Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x

Post by userV » Mon Apr 25, 2016 3:50 pm

Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x

Post by NORMANN » Mon Apr 25, 2016 4:39 pm

Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x

Post by userV » Mon Apr 25, 2016 5:51 pm

/etc/rc.local тоже просить дописать дефолтные уровни запуска? Что то ваш дебиан выделывается.

Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x

Post by NORMANN » Tue Apr 26, 2016 8:47 am

Re: Автозапуск собственного скрипта после перезагрузки системы Debian 8.x

Post by userV » Tue Apr 26, 2016 10:52 am

Источник

запуск программы при включении компютера?

При включении через СОМ порт и подгрузи баша программа отрабатывает. НО мне надо чтоб когда включился компьютер, и бо в планах не использовать CОМ порт вообще.

Хотелось бы чтоб при включении компьютера, чтоб запускалась программка при включении в операционной системе Debian 9. Я прочёл статью о том как в линуксе можно прописать запуск программы при запуске операционной системы.

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

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

Но как только я запустил этот файл едиственное что я мог это только его читать. Да и не совсем понятно куда вписывать

debian запуск скрипта при загрузке. CPnHb. debian запуск скрипта при загрузке фото. debian запуск скрипта при загрузке-CPnHb. картинка debian запуск скрипта при загрузке. картинка CPnHb. Скрипты инициализации также важны во время запуска и останова системы (в *nix системах просто меняется“runlevel”). Если вы посмотрите на список процессов, запущенных на вашей машине (попробуйте команду ps auwx), то есть вероятность, что процесс с наименьшим PID будет называться “init”. Это родительский процесс для всех процессов, это первая программа которую ядро запускает при загрузке. Программа init, которую можно найти по пути /sbin/init, ответственна за в рабочее состояние после того, как загрузится ядро.

Потом решил попробовать другой вариант

в файле /etc/rc.local прописал :

Увы также не чего не вышло (((

debian запуск скрипта при загрузке. . debian запуск скрипта при загрузке фото. debian запуск скрипта при загрузке-. картинка debian запуск скрипта при загрузке. картинка . Скрипты инициализации также важны во время запуска и останова системы (в *nix системах просто меняется“runlevel”). Если вы посмотрите на список процессов, запущенных на вашей машине (попробуйте команду ps auwx), то есть вероятность, что процесс с наименьшим PID будет называться “init”. Это родительский процесс для всех процессов, это первая программа которую ядро запускает при загрузке. Программа init, которую можно найти по пути /sbin/init, ответственна за в рабочее состояние после того, как загрузится ядро.

Увы не вышло хотя и проверял как скрипт (по отдельности также не забыл сделать его исполняемым), также и программу прогнал через chmod +x (когда увидел что не запустилось).

Поправил надо было в файл nano

/.bashrc перед командой вызова скрипта надо было перейти в директорию cd /kononov/initialization1 в которой всё будет происходить.

А хотелось бы чтоб программа включалась после подачи питания и стартовой инициализации аппарата.

прочитал я этот вопрос (так сказать мой вопрос его дубликат) и понял что модераторы снова ошиблись.

всё делал по ответу

Делаем файл исполняемым: chmod +x wentilation.

Источник

Debian Squeeze: параллельный автозапуск скриптов при старте системы

Введение

Осознание проблемы

Утром я поставил систему, установил все необходимые пакеты, дальше начинаю прикручивать к системе скрипты (собственно сервер же заводим не для того чтобы им любоваться, а для работы). Сразу же уточню: cкрипт настраивал проксирование пользователей в интернет, все настройки он брал из PostgreSQL. Таким образом он должен запускаться после того как будет сконфигурирована сеть и запущен демон СУБД. И тут начинается мистика, создаю символическую ссылку на скрипт:

ln /usr/proxy/scripts/start /etc/rc1.d/S99proxy
ln /usr/proxy/scripts/start /etc/rc2.d/S99proxy
ln /usr/proxy/scripts/start /etc/rc3.d/S99proxy
ln /usr/proxy/scripts/start /etc/rc4.d/S99proxy
ln /usr/proxy/scripts/start /etc/rc5.d/S99proxy

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

ln /usr/proxy/scripts/start /etc/network/if-up.d/proxy

Перезагружаю систему, скрипт начинает выполняться, но снова провал. Скрипт настройки сети запускается раньше чем стартует демон СУБД, и соответственно содержимое /etc/network/if-up.d выполняется тоже раньше (собственно оно так и должно быть). Далее решаю поместить в директории rc*.d скрипт со следующим содержанием:

#!/bin/bash
echo «Run test» >> /var/log/test.log

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

#!/bin/bash
sleep 20
echo «Run test» >> /var/log/test.log

После перезагрузки обнаруживаю отсутствие файла /var/log/test.log. От такого облома я решаю схитрить — дописываю в скрипт запуска демона ssh строку с echo. После перезагрузки как и полагается обнаружил то что ждал, файл создался и строчка «Run test» в нем присутствует. Начинаю активно шевелить мозгами, в уме появляется уравнение: запуск скрипта не работает + новая система запуска скриптов при старте системы = неожиданное поведение. Вывод напрашивается один: надо гуглить искать решение в технических статьях и документации.

Вот где собака зарыта

В ходе исследования было выяснено что в Debian Squeeze используется система LSBInitScripts для запуска скриптов при загрузке ОС. Ее особенностью является — по возможности параллельный запуск скриптов. В предыдущем предложении слова «по возможности» являются ключевыми. Нельзя просто взять и параллельно запустить все скрипты, часть скриптов имеет определенные зависимости от других служб. В моем случае скрипт должен выполняться только после запуска СУБД и настройки сети. Для этого LSBInitScripts строит граф зависимостей. Его графическое представление можно увидеть выполнив команды:

В моем случае это получилась полнейшая кракозябра. Встал вопрос о том где же хранятся эти зависимости. В вики Debian’на выяснилось, что зависимости указываются в комментариях у скриптов в директории /etc/init.d, вот пример такого комментария для ssh:

Provides — это имя или несколько имен того с чем работает(запускает/останавливает) скрипт. Имена должны быть уникальны.
Required-Start— а вот это как раз и есть наша зависимость, которая указывает что потребуется скрипту для запуска.
Default-Start — показывает на каких уровнях нужно выполнять загрузку скрипта.
Более детальное описание параметров есть здесь.

Создаем свой скрипт

Теперь, когда мы знаем нашего врага в лицо можно попробовать написать пару простеньких скриптов. Вот первый, назовем его test:

echo «Run test» >> /var/log/test.log

echo «Run test2» >> /var/log/test.log

Файлы называются test и test2 соответственно. В данном примере test2 зависит от test, и поэтому test будет запускаться первым, а затем только test2. Поместим их в директорию /etc/init.d. Но этого еще мало, и даже мало будет создания симлинков в /etc/rc*.d. Что бы заставить все это дело работать необходимо выполнить построение нового графа зависимостей, делается это командами:

update-rc.d test defaults
update-rc.d test2 defaults

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

Заключение

В данной статье я не пытался полностью описать новый процесс запуска скриптов в Debian. Моей целью было дать отправную точку для изучения проблемы, сэкономить время других людей (у меня ушло несколько часов на поиск причины, чтение манов и эксперименты).

Источник

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

Есть скрипт /root/project/test Добавил файл запуска в /etc/init.d/test :

Зделал reboot но скрипт не запускается!?

2 ответа 2

В ранних версиях там описанно всё внутри этого файла. Нужно только исправить на своё.

Вам нужно реализовать, минимум, чтоб работала функция start.

Существуют несколько способов сделать автозапуск программ в Linux. За автозагрузку отвечает файл /etc/rc.local как раз название говорит о само за себя, имеется ввиду локальный файл для администратора что бы не лезть в глубь системы, это более простой и универсальный способ. Чаще всего его вполне достаточно и не нужно изобретать велосипед.

Добавление скрипта в автозагрузку:

Удаление скрипта из автозагрузки:

debian запуск скрипта при загрузке. lhaaY. debian запуск скрипта при загрузке фото. debian запуск скрипта при загрузке-lhaaY. картинка debian запуск скрипта при загрузке. картинка lhaaY. Скрипты инициализации также важны во время запуска и останова системы (в *nix системах просто меняется“runlevel”). Если вы посмотрите на список процессов, запущенных на вашей машине (попробуйте команду ps auwx), то есть вероятность, что процесс с наименьшим PID будет называться “init”. Это родительский процесс для всех процессов, это первая программа которую ядро запускает при загрузке. Программа init, которую можно найти по пути /sbin/init, ответственна за в рабочее состояние после того, как загрузится ядро.

debian запуск скрипта при загрузке. p9Whz. debian запуск скрипта при загрузке фото. debian запуск скрипта при загрузке-p9Whz. картинка debian запуск скрипта при загрузке. картинка p9Whz. Скрипты инициализации также важны во время запуска и останова системы (в *nix системах просто меняется“runlevel”). Если вы посмотрите на список процессов, запущенных на вашей машине (попробуйте команду ps auwx), то есть вероятность, что процесс с наименьшим PID будет называться “init”. Это родительский процесс для всех процессов, это первая программа которую ядро запускает при загрузке. Программа init, которую можно найти по пути /sbin/init, ответственна за в рабочее состояние после того, как загрузится ядро.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками linux debian или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.9.23.40286

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

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

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