Проблема с автозагрузкой (Неправильный запуск скрипта из /etc/rc.d/rc.local (Mandriva 2008.1))
Модератор: Bizdelnick
-
uchkuma
- Сообщения: 14
Проблема с автозагрузкой
При загрузке системы перестал запускаться скрипт, прописанный в файле /etc/rc.d/rc.local
Это скрипт автоматического запуска и авторизации для доступа в интернет:
wpa_supplicant -Dwired -c/etc/wpa_supplicant.conf -ieth0
ifup eth0
Через alt+F2 скрипт запускается с root-овскими правами.
В линухе я новичок, поэтому прошу описать подоступнее, в чем может быть проблема и как ее можно вычислить (логи и т.д.)
Это скрипт автоматического запуска и авторизации для доступа в интернет:
wpa_supplicant -Dwired -c/etc/wpa_supplicant.conf -ieth0
ifup eth0
Через alt+F2 скрипт запускается с root-овскими правами.
В линухе я новичок, поэтому прошу описать подоступнее, в чем может быть проблема и как ее можно вычислить (логи и т.д.)
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Проблема с автозагрузкой
да, логи просмотрите в первую очередь.
/var/log/messages
/var/log/syslog
/var/log/messages
/var/log/syslog
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
uchkuma
- Сообщения: 14
Re: Проблема с автозагрузкой
Весь форум облазил, голову сломал
( не запускается wpa_supplicant из rc.local и все тут!
Подскажите, что где прописать и как отследить, по какой причине wpa_supplicant может не запускаться? Что искать в логах?
Хочу отметить, что после первоначальной настройки супликанта (настройки его конфига и файла rc.local), все прекрасно загружалось автоматически и больше в эти файлы я не лазил. В один прекрасный день супликант перестал загружаться автоматически - подозреваю, что это произошло после установки (настройки) какого-нибудь сетевого компонента из "Центра управления".
Подскажите, что где прописать и как отследить, по какой причине wpa_supplicant может не запускаться? Что искать в логах?
Хочу отметить, что после первоначальной настройки супликанта (настройки его конфига и файла rc.local), все прекрасно загружалось автоматически и больше в эти файлы я не лазил. В один прекрасный день супликант перестал загружаться автоматически - подозреваю, что это произошло после установки (настройки) какого-нибудь сетевого компонента из "Центра управления".
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Проблема с автозагрузкой
т.е. при запуске вручную в загруженной системе всё работает?
тогда попробуйте вызов вашего скрипта в файле /etc/rc.d/rc.local дополнить командой sleep:
может быть, /etc/rc.d/rc.local вообще не запускается? проверьте.
может быть, выше в этом файле есть команды, которые не возвращают управление, и до вызова вашего скрипта просто дело не доходит?
тогда попробуйте вызов вашего скрипта в файле /etc/rc.d/rc.local дополнить командой sleep:
Код: Выделить всё
(sleep 10; /ваш/скрипт) &может быть, /etc/rc.d/rc.local вообще не запускается? проверьте.
может быть, выше в этом файле есть команды, которые не возвращают управление, и до вызова вашего скрипта просто дело не доходит?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
uchkuma
- Сообщения: 14
Re: Проблема с автозагрузкой
при запуске в загруженной системе работает, но тоже не всегда. wpa_supplicant запускается, а интерфейс eth0 не поднимается. позже поднимается вручную и все работает. такое впечатление, что суппликанту нужно какое-то время (авторизоваться?), а потом уже поднимать eth0.
Тогда вопрос в следующем: как правильно построить мой скрипт?
Содержимое файла /etc/rc.d/rc.local
пустая строка в конце наличествует
а что собственно делает эта команда?
Тогда вопрос в следующем: как правильно построить мой скрипт?
Содержимое файла /etc/rc.d/rc.local
Код: Выделить всё
#!/bin/sh -x
#
### BEGIN INIT INFO
# Provides: rc.local
# X-Mandriva-Compat-Mode
# Default-Start: 2 3 4 5
# Short-Description: Local initialization script
# Description: This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
### END INIT INFO
touch /var/lock/subsys/local
wpa_supplicant -B -Dwired -ieth0 -c/etc/wpa_supplicant.conf
ifup eth0пустая строка в конце наличествует
а что собственно делает эта команда?
Код: Выделить всё
(sleep 10; /ваш/скрипт) &-
Hust1er
- Сообщения: 26
Re: Проблема с автозагрузкой
uchkuma писал(а): ↑09.02.2009 15:49при запуске в загруженной системе работает, но тоже не всегда. wpa_supplicant запускается, а интерфейс eth0 не поднимается. позже поднимается вручную и все работает. такое впечатление, что суппликанту нужно какое-то время (авторизоваться?), а потом уже поднимать eth0.
Тогда вопрос в следующем: как правильно построить мой скрипт?
Содержимое файла /etc/rc.d/rc.local
Код: Выделить всё
#!/bin/sh -x # ### BEGIN INIT INFO # Provides: rc.local # X-Mandriva-Compat-Mode # Default-Start: 2 3 4 5 # Short-Description: Local initialization script # Description: This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. ### END INIT INFO touch /var/lock/subsys/local wpa_supplicant -B -Dwired -ieth0 -c/etc/wpa_supplicant.conf ifup eth0
пустая строка в конце наличествует
а что собственно делает эта команда?
Код: Выделить всё
(sleep 10; /ваш/скрипт) &
Была асболютно такая же проблемма. И насколько я понял команда wpa_supplicant -B -Dwired -ieth0 -c/etc/wpa_supplicant.conf проходит, но не проходит ifup eth0;
попробуйте после загрузки сразу набрать ifup eth0, cеть должна поднятся.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Проблема с автозагрузкой
это не команда. это скрипт.
делает он паузу в десять секунд и после этого запускает /ваш/скрипт.
причём выполняет эти действия новый экземпляр шелла. fork-ается по-программистски.
причём этот новый экземпляр, ещё не начав выполняться, возвращает управление вызвавшему его шеллу. это на всякий случай. чтобы нормальный процесс загрузки не нарушать.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
uchkuma
- Сообщения: 14
Re: Проблема с автозагрузкой
Hust1er писал(а): ↑12.02.2009 10:51uchkuma писал(а): ↑09.02.2009 15:49при запуске в загруженной системе работает, но тоже не всегда. wpa_supplicant запускается, а интерфейс eth0 не поднимается. позже поднимается вручную и все работает. такое впечатление, что суппликанту нужно какое-то время (авторизоваться?), а потом уже поднимать eth0.
Тогда вопрос в следующем: как правильно построить мой скрипт?
Была асболютно такая же проблемма. И насколько я понял команда wpa_supplicant -B -Dwired -ieth0 -c/etc/wpa_supplicant.conf проходит, но не проходит ifup eth0;
попробуйте после загрузки сразу набрать ifup eth0, cеть должна поднятся.
Обратите внимание, Hust1er, выше я написал тоже самое, но другими словами )) Но это не спасает ситуацию, т.к. надо, чтоб сеть поднималась автоматически и ДО загрузки иксов.
-
uchkuma
- Сообщения: 14
Re: Проблема с автозагрузкой
sash-kan писал(а): ↑14.02.2009 03:57
это не команда. это скрипт.
делает он паузу в десять секунд и после этого запускает /ваш/скрипт.
причём выполняет эти действия новый экземпляр шелла. fork-ается по-программистски.
причём этот новый экземпляр, ещё не начав выполняться, возвращает управление вызвавшему его шеллу. это на всякий случай. чтобы нормальный процесс загрузки не нарушать.
Я так понял, вставка паузы и есть решение моей проблемы? вот только паузу, кажется, надо вставить после скрипта перед поднятием сети (ifup eth0). Т.е. должно получиться следующее?
Код: Выделить всё
#!/bin/sh -x
#
### BEGIN INIT INFO
# Provides: rc.local
# X-Mandriva-Compat-Mode
# Default-Start: 2 3 4 5
# Short-Description: Local initialization script
# Description: This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
### END INIT INFO
touch /var/lock/subsys/local
wpa_supplicant -B -Dwired -ieth0 -c/etc/wpa_supplicant.conf
(sleep 10; ifup eth0) &И все-таки меня терзают смутные сомнения. Например в винде, при подключении интернета, по значку состояния сети я вижу:
- сначала идет запрос авторизации
- после успешной авторизации dhcp провайдера назначает ip dns и прочее (обычно это длится от 10 до 20 сек)
- наконец "Интернет" подключен!
Каким образом это должно происходить в linux? развейте мои сомнения:
- wpa_supplicant запустился, с этого момента началась авторизация у провайдера?
- как определить, что авторизация прошла успешно, и только после этого дать команду ifup eth0?
-
Hust1er
- Сообщения: 26
Re: Проблема с автозагрузкой
uchkuma писал(а): ↑16.02.2009 11:12Hust1er писал(а): ↑12.02.2009 10:51uchkuma писал(а): ↑09.02.2009 15:49при запуске в загруженной системе работает, но тоже не всегда. wpa_supplicant запускается, а интерфейс eth0 не поднимается. позже поднимается вручную и все работает. такое впечатление, что суппликанту нужно какое-то время (авторизоваться?), а потом уже поднимать eth0.
Тогда вопрос в следующем: как правильно построить мой скрипт?
Была асболютно такая же проблемма. И насколько я понял команда wpa_supplicant -B -Dwired -ieth0 -c/etc/wpa_supplicant.conf проходит, но не проходит ifup eth0;
попробуйте после загрузки сразу набрать ifup eth0, cеть должна поднятся.
Обратите внимание, Hust1er, выше я написал тоже самое, но другими словами )) Но это не спасает ситуацию, т.к. надо, чтоб сеть поднималась автоматически и ДО загрузки иксов.
Жутко извиняюсь... действительНо! невнимательно прочитал...)
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Проблема с автозагрузкой
Код: Выделить всё
(sleep 10; wpa_supplicant -B -Dwired -ieth0 -c/etc/wpa_supplicant.conf
ifup eth0) &вставка паузы отложит выполнение вызова wpa_supplicant и последующей команды ifup.
а вот решится ваша проблема или нет — это уж вам виднее.
а с чем связана подобная необходимость (я про «ДО»)?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
uchkuma
- Сообщения: 14
Re: Проблема с автозагрузкой
с тем, что от загрузки иксов я могу отказаться и загружать их только при необходимости (комп используется для раздачи интернета в небольшой локалке).
-
uchkuma
- Сообщения: 14
Re: Проблема с автозагрузкой
проблема не решена. eth0 по-прежнему поднимается только ручками после загрузки системы.
не помогло
как выдержать паузу между "wpa_supplicant -B -Dwired -ieth0 -c/etc/wpa_supplicant.conf" и "ifup eth0". или как понять, что wpa_supplicant успешно авторизовался и пора поднимать eth0.
Код: Выделить всё
(sleep 10; wpa_supplicant -B -Dwired -ieth0 -c/etc/wpa_supplicant.conf
ifup eth0) &не помогло
как выдержать паузу между "wpa_supplicant -B -Dwired -ieth0 -c/etc/wpa_supplicant.conf" и "ifup eth0". или как понять, что wpa_supplicant успешно авторизовался и пора поднимать eth0.
-
FlySnake
- Сообщения: 992
- ОС: openSUSE
Re: Проблема с автозагрузкой
Вероятно этот wpa_supplicant умеет показывать информацию об успешной авторизации и об этом где-то написано
Если вручную запустить то он сразу же возвращает управление шеллу, или пока не проделает свои дела?
Код: Выделить всё
wpa_supplicant -B -Dwired -ieth0 -c/etc/wpa_supplicant.conf-
uchkuma
- Сообщения: 14
Re: Проблема с автозагрузкой
FlySnake писал(а): ↑25.02.2009 00:43Вероятно этот wpa_supplicant умеет показывать информацию об успешной авторизации и об этом где-то написаноЕсли вручную запустить
то он сразу же возвращает управление шеллу, или пока не проделает свои дела?Код: Выделить всё
wpa_supplicant -B -Dwired -ieth0 -c/etc/wpa_supplicant.conf
Без параметра -B wpa_supplicant не возвращает управление, с параметром -B - запускается и возвращает управление (уходит в демоны). Интересно, что в инструкции по настройке от провайдера параметр -B не был указан:
wpa_supplicant -Dwired -c/etc/wpa_supplicant.conf -ieth0
ifup eth0
именно так я и настроил и все работало... до поры до времени
Вчера заметил, после каких-то манипуляций (кажется, в сервисах я отключил NetworkManager и NetworkManagerDispatcher) и последующей перезагрузки компа, после загрузки графики вижу, что eth0 таки не поднялся. Отошел на минуту от компа, возвращаюсь - eth0 поднялся, интернет доступен!!! Перезагрузил еще раз, чтоб проверить - опять поднялся спустя около минуты! Вроде заработало, только как-то непонятно. И вообще может ли быть причастно к устранению проблемы отключение вышеуказанных сервисов?
Проблема теперь в большой задержке. Откуда взялся такой промежуток между запуском wpa_supplicant и поднятием eth0? Раньше такой задержки не было. Да, и при запуске скрипта из загруженной системы, такой задержки нет. В винде тоже от подключения сетевого адаптера до присвоения IP dhcp проходит не более 6-8 секунд (авторизация производилась программой Odyssey).
пока изучаю man wpa_supplicant (жаль английский у меня только со словарем)
-
gluk47
- Сообщения: 297
- Статус: Любитель гвоздей и микроскопов
- ОС: Kubuntu 17.10
Re: Проблема с автозагрузкой
Я тоже пользуюсь суппликантом. У меня интернет поднимается асинхронно, то есть где-то через полминуты-минуту примерно после загрузки dm. Думаю, это связано с задержкой авторизации и получения адреса.
Интернет поднимается независимо от наличия иксов. Просто в какой-то момент он уходит в фоновую загрузку, пока запускаются остальные демоны.
В rc.local опции -В у меня нету.
В винде сеть тупит с полминуты до запроса логина и пароля, потом ещё с полминуты до получения адреса, так же и получается по времени. У меня в Волгограде провайдер просто неспешный, видимо. И при запуске суппликанта руками, кстати, тоже задержка. Правда, где-то с полминуты всего... так, на глаз.
Интернет поднимается независимо от наличия иксов. Просто в какой-то момент он уходит в фоновую загрузку, пока запускаются остальные демоны.
В rc.local опции -В у меня нету.
В винде сеть тупит с полминуты до запроса логина и пароля, потом ещё с полминуты до получения адреса, так же и получается по времени. У меня в Волгограде провайдер просто неспешный, видимо. И при запуске суппликанта руками, кстати, тоже задержка. Правда, где-то с полминуты всего... так, на глаз.
[gluk47@gluk47-desktop ~]$ ензу куищще
куищще is aliased to `reboot'
куищще is aliased to `reboot'
-
uchkuma
- Сообщения: 14
Re: Проблема с автозагрузкой
если судить по винде (наглядно я смог рассмотреть пока в ней), то без использования программы для автоматической авторизации (Odyssey), запрос на ввод логина/пароля появляется спустя 10-15 сек, а с использованием Одиссея, он авторизуется практически без задержек (1-2 сек). и еще 10 сек на присвоение ip-адреса. все!!! поэтому оправдать такое поведение в своей мандриве неспешностью провайдера я не могу.
в комплекте с wpa_supplicant имеется wpa_cli, с помощью которого, как я понимаю, можно отследить текущее состояние и все-кати вычислить на каком этапе имеет место такая задержка и почему. как я догадываюсь, задержка именно в присвоении IP.
нашел в интернете такую строчку "DHCP не выдавало IP из-за IPv6-включил-заработало". интересно...
объясните, чем чревато наличие опции -B? мне хочется понять логику запуска этого скрипта.
1. если wpa_supplicant не авторизовался или не присвоился ip-адрес (ну не успел), то eth0 не поднимется. это уже проверено. значит ли это, что при включенной опции -B wpa_supplicant уйдет в фон, потом сразу запустится ifup eth0 и попытка поднять eth0 закончится неудачей? если так, то п.2.
2. как запустить ifup eth0 сразу после получения ip от dhcp? возможно с помощью wpa_cli? буду курить man wpa_cli, но мне, как человеку некурящему, это будет не легко, поэтому жду ваших подсказок и соображений.
3. без опции -B wpa_supplicant не вернет сразу управление шеллу, соответственно ifup eth0 запустится только после того как wpa_supplicant проделает все свои дела? (сначала так и было и все работало, но потом как-будто до ifup eth0 вообще дело не доходило)
в комплекте с wpa_supplicant имеется wpa_cli, с помощью которого, как я понимаю, можно отследить текущее состояние и все-кати вычислить на каком этапе имеет место такая задержка и почему. как я догадываюсь, задержка именно в присвоении IP.
нашел в интернете такую строчку "DHCP не выдавало IP из-за IPv6-включил-заработало". интересно...
В rc.local опции -В у меня нету.
объясните, чем чревато наличие опции -B? мне хочется понять логику запуска этого скрипта.
Код: Выделить всё
wpa_supplicant -В -Dwired -c/etc/wpa_supplicant.conf -ieth0
ifup eth01. если wpa_supplicant не авторизовался или не присвоился ip-адрес (ну не успел), то eth0 не поднимется. это уже проверено. значит ли это, что при включенной опции -B wpa_supplicant уйдет в фон, потом сразу запустится ifup eth0 и попытка поднять eth0 закончится неудачей? если так, то п.2.
2. как запустить ifup eth0 сразу после получения ip от dhcp? возможно с помощью wpa_cli? буду курить man wpa_cli, но мне, как человеку некурящему, это будет не легко, поэтому жду ваших подсказок и соображений.
3. без опции -B wpa_supplicant не вернет сразу управление шеллу, соответственно ifup eth0 запустится только после того как wpa_supplicant проделает все свои дела? (сначала так и было и все работало, но потом как-будто до ifup eth0 вообще дело не доходило)