Русские Блоги
/etc/rc.local и /etc/init.d Программа автозапуска загрузки Linux
1. /etc/rc.local
Это определяемая пользователем программа запуска загрузки, и программа, которая должна запускаться автоматически после загрузки, написана в этом сценарии.
После запуска службы уровня 3, если мне нужно выполнить другие действия, например, я также хочу отправить письмо в учетную запись управления системой. , Сообщите ему, что система только что перезагрузилась, поэтому следует ли нам создать сценарий оболочки и поместить его в /etc/rc.d/init.d/, а затем связать его с /etc/rc.d/rc3 посредством ссылки. г / А что насчет внутри? Ха-ха! Конечно нет! Помните /etc/rc.d/rc.local, упомянутый в предыдущем разделе? Этот файл может выполнять системные команды, которые вы хотите выполнить. Похожи ли они на autoexec.bat и config.sys в раннюю эпоху DOS? ^ _ ^
То есть, когда у меня есть какая-либо работа, которую я хочу выполнить во время загрузки, записываю ее непосредственно в /etc/rc.local, тогда работа будет выполняться автоматически во время загрузки. Он загружен! Не нужно ждать, пока мы войдем в систему, чтобы запустить ее! Это удобно? Вообще говоря, Брат Берд любит записывать полное имя файла сценария оболочки, который он создал, в /etc/rc.d/rc.local, чтобы мой сценарий оболочки выполнялся после загрузки, и это прекрасно. !
Другими словами, на заключительном этапе запуска Linux система выполнит команды, хранящиеся в rc.local. Это немного похоже на меню «Автозагрузка» в Windows, но с настройкой сложнее и функция более мощная.
Использование:
1) Запуск oracle и других серверов: если вам нужно, чтобы ваш oracle запускался с системой, вы можете проверить файл / etc / oratab, а затем узнать об этом, вы Вы обнаружите, что это его правильное местоположение
2) Статическая маршрутизация: когда необходимо добавить большое количество маршрутов, которых нет в этом сегменте сети, многие люди любят добавлять аналогичные в /etc/rc.d/rc.local
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.224.0.251
route add -host 192.168.100.1 gw 10.224.0.251
2. /etc/init.d
В этом каталоге хранятся некоторые сценарии, обычно сценарии запуска некоторых служб, заданные при установке Linux с пакетом rpm. В системе установлено много rpm-пакетов, и в ней есть много соответствующих скриптов. Выполнение этих сценариев можно использовать для запуска, остановки и перезапуска этих служб. Например, если вы хотите перезапустить sendmail, а ваш sendmail установлен с помощью rpm, выполните /etc/rc.d/init.d/sendmail restart, чтобы запустить sendmail напрямую. Привет!
Как упоминалось ранее, сценарии в каталоге /etc/rc.d/init.d похожи на реестр в Windows и выполняются при запуске системы. Программа запускается здесь (процесс init считывает уровень выполнения), пора запустить сценарий в init.d, но он запускается не напрямую, а выборочно, потому что системе не нужно запускать все службы.
Тогда как система выбирает, что нужно активировать, а что нет? В это время вступает в силу только что упомянутый уровень выполнения. После определения уровня запуска системы сначала выполняется сценарий /etc/rc.d/rc. В исходном коде RH9 и FC7 он проверяет_runlevel (), как только он появляется (хотя реализованный код отличается, он также похож). После определения уровня выполнения для каждого уровня выполнения существует подкаталог в rc.d Это rc0.d, rc1.d… .. rc6.d. Под каждым каталогом есть ссылки на некоторые скрипты в каталоге init.d. Службы, которые должны выполняться на каждом уровне, находятся в соответствующем каталоге.Например, службы, запускаемые на уровне 5, помещаются в rc5.d, но файлы ссылок, помещенные в rc5.d, связаны с init. Соответствующий файл в d фактически работает в скрипте в init.d.
1. О /etc/init.d
Если вы использовали систему Linux, значит, вы слышали о каталоге init.d. Для чего именно этот каталог? В конечном итоге он делает только одно, но это нетривиально, это делается для всей системы, поэтому это очень важно. Каталог init.d содержит множество сценариев запуска и остановки для различных служб системы. Он контролирует все транзакции от acpid до x11-common. Конечно, init.d — это далеко не просто. (Примечание переводчика: acpid — это новый стандарт управления питанием для операционной системы Linux; X11 также называется X Window System, а X Window System (X11 или X) — это оконная система с растровым отображением. Она присутствует в Unix и Unix-подобных операционных системах. Помимо стандартного набора инструментов и протокола для создания графического пользовательского интерфейса в OpenVMS, он может использоваться практически в существующих современных операционных системах).
Когда вы посмотрите на каталог / etc, вы найдете множество каталогов в виде rc # .d (здесь # представляет указанный уровень инициализации в диапазоне от 0 до 6). В этих каталогах есть много скриптов, управляющих процессом. Эти сценарии начинаются с буквы «K» или «S». Скрипты, начинающиеся с K, выполняются перед скриптами, начинающимися с S. Размещение этих сценариев определит, когда эти сценарии начнут выполняться. Между этими каталогами системные службы работают вместе, как исправная машина. Однако иногда вам нужно иметь возможность запускать или завершать процесс чисто, без использования команд kill или killall. Здесь /etc/init.d может пригодиться!
Если вы используете систему Fedora, вы можете найти этот каталог: /etc/rc.d/init.d. Фактически, где бы ни был размещен init.d, он играет ту же роль.
Чтобы иметь возможность использовать сценарии в каталоге init.d, вам потребуются разрешения root или разрешения sudo. Каждый сценарий будет запускаться как команда, структура команды примерно следующая:
/etc/init.d/command параметр comand - это фактическая запущенная команда, параметры могут быть следующими: start stop reload restart force-reload В большинстве случаев вы будете использовать параметры запуска, остановки и перезапуска. Например, если вы хотите выключить сеть, вы можете использовать команду следующего вида: /etc/init.d/networking stop Другой пример: вы изменили настройки сети и вам нужно перезапустить сеть. Вы можете использовать следующие команды: /etc/init.d/networking restart Обычно используемые сценарии инициализации в каталоге init.d: networking samba apache2 ftpd sshd dovecot mysql
Конечно, у вас могут быть другие, более часто используемые сценарии, в зависимости от того, какую операционную систему Linux вы установили.
2. О /etc/rc.local
rc.local — также скрипт, который я часто использую. Сценарий выполняется после запуска сценария уровня инициализации системы, поэтому вы можете безопасно добавить сценарий, который хотите выполнить, после запуска системы. Обычно внутри вы можете добавить скрипты монтирования / монтирования nfs. Кроме того, вы также можете добавить некоторые команды сценария для отладки. Например, я столкнулся с такой ситуацией: служба samba всегда не работает нормально, и проверка показала, что samba должна запускаться во время процесса запуска системы, то есть конфигурация демона samba гарантирует эту функцию. Это должно быть выполнено правильно. В подобной ситуации я обычно не трачу много времени на выяснение причин, мне просто нужно просто добавить эту строку в сценарий /etc/rc.local:
Это успешно решает проблему аномального сервиса самбы.
Linux гибок. Благодаря его гибкости мы всегда можем найти множество разных способов решения одной и той же проблемы. Пример запуска системных сервисов — хорошее тому подтверждение. С помощью сценариев в каталоге /etc/init.d и инструмента /etc/rc.local вы можете быть уверены, что ваши службы будут запускаться и работать безупречно.