Проблема с автозагрузкой (Неправильный запуск скрипта из /etc/rc.d/rc.local (Mandriva 2008.1))

PCLinuxOS

Модератор: Bizdelnick

uchkuma
Сообщения: 14

Проблема с автозагрузкой

Сообщение uchkuma »

При загрузке системы перестал запускаться скрипт, прописанный в файле /etc/rc.d/rc.local
Это скрипт автоматического запуска и авторизации для доступа в интернет:
wpa_supplicant -Dwired -c/etc/wpa_supplicant.conf -ieth0
ifup eth0
Через alt+F2 скрипт запускается с root-овскими правами.
В линухе я новичок, поэтому прошу описать подоступнее, в чем может быть проблема и как ее можно вычислить (логи и т.д.)
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Проблема с автозагрузкой

Сообщение sash-kan »

да, логи просмотрите в первую очередь.
/var/log/messages
/var/log/syslog
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
uchkuma
Сообщения: 14

Re: Проблема с автозагрузкой

Сообщение uchkuma »

Весь форум облазил, голову сломал :(( не запускается wpa_supplicant из rc.local и все тут!
Подскажите, что где прописать и как отследить, по какой причине wpa_supplicant может не запускаться? Что искать в логах?

Хочу отметить, что после первоначальной настройки супликанта (настройки его конфига и файла rc.local), все прекрасно загружалось автоматически и больше в эти файлы я не лазил. В один прекрасный день супликант перестал загружаться автоматически - подозреваю, что это произошло после установки (настройки) какого-нибудь сетевого компонента из "Центра управления".
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Проблема с автозагрузкой

Сообщение sash-kan »

т.е. при запуске вручную в загруженной системе всё работает?
тогда попробуйте вызов вашего скрипта в файле /etc/rc.d/rc.local дополнить командой sleep:

Код: Выделить всё

(sleep 10; /ваш/скрипт) &


может быть, /etc/rc.d/rc.local вообще не запускается? проверьте.

может быть, выше в этом файле есть команды, которые не возвращают управление, и до вызова вашего скрипта просто дело не доходит?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
uchkuma
Сообщения: 14

Re: Проблема с автозагрузкой

Сообщение uchkuma »

при запуске в загруженной системе работает, но тоже не всегда. 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; /ваш/скрипт) &
Спасибо сказали:
Hust1er
Сообщения: 26

Re: Проблема с автозагрузкой

Сообщение Hust1er »

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: Проблема с автозагрузкой

Сообщение sash-kan »

uchkuma писал(а):
09.02.2009 15:49
а что собственно делает эта команда?

это не команда. это скрипт.
делает он паузу в десять секунд и после этого запускает /ваш/скрипт.
причём выполняет эти действия новый экземпляр шелла. fork-ается по-программистски.
причём этот новый экземпляр, ещё не начав выполняться, возвращает управление вызвавшему его шеллу. это на всякий случай. чтобы нормальный процесс загрузки не нарушать.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
uchkuma
Сообщения: 14

Re: Проблема с автозагрузкой

Сообщение uchkuma »

Hust1er писал(а):
12.02.2009 10:51
uchkuma писал(а):
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: Проблема с автозагрузкой

Сообщение uchkuma »

sash-kan писал(а):
14.02.2009 03:57
uchkuma писал(а):
09.02.2009 15:49
а что собственно делает эта команда?

это не команда. это скрипт.
делает он паузу в десять секунд и после этого запускает /ваш/скрипт.
причём выполняет эти действия новый экземпляр шелла. 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: Проблема с автозагрузкой

Сообщение Hust1er »

uchkuma писал(а):
16.02.2009 11:12
Hust1er писал(а):
12.02.2009 10:51
uchkuma писал(а):
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: Проблема с автозагрузкой

Сообщение sash-kan »

Код: Выделить всё

(sleep 10; wpa_supplicant -B -Dwired -ieth0 -c/etc/wpa_supplicant.conf

ifup eth0) &


uchkuma писал(а):
16.02.2009 11:36
Я так понял, вставка паузы и есть решение моей проблемы?

вставка паузы отложит выполнение вызова wpa_supplicant и последующей команды ifup.
а вот решится ваша проблема или нет — это уж вам виднее.

uchkuma писал(а):
16.02.2009 11:12
надо, чтоб сеть поднималась автоматически и ДО загрузки иксов.

а с чем связана подобная необходимость (я про «ДО»)?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
uchkuma
Сообщения: 14

Re: Проблема с автозагрузкой

Сообщение uchkuma »

sash-kan писал(а):
17.02.2009 03:28
uchkuma писал(а):
16.02.2009 11:12
надо, чтоб сеть поднималась автоматически и ДО загрузки иксов.

а с чем связана подобная необходимость (я про «ДО»)?

с тем, что от загрузки иксов я могу отказаться и загружать их только при необходимости (комп используется для раздачи интернета в небольшой локалке).
Спасибо сказали:
uchkuma
Сообщения: 14

Re: Проблема с автозагрузкой

Сообщение uchkuma »

проблема не решена. 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: Проблема с автозагрузкой

Сообщение FlySnake »

Вероятно этот wpa_supplicant умеет показывать информацию об успешной авторизации и об этом где-то написано :) Если вручную запустить

Код: Выделить всё

wpa_supplicant -B -Dwired -ieth0 -c/etc/wpa_supplicant.conf
то он сразу же возвращает управление шеллу, или пока не проделает свои дела?
Спасибо сказали:
uchkuma
Сообщения: 14

Re: Проблема с автозагрузкой

Сообщение uchkuma »

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: Проблема с автозагрузкой

Сообщение gluk47 »

Я тоже пользуюсь суппликантом. У меня интернет поднимается асинхронно, то есть где-то через полминуты-минуту примерно после загрузки dm. Думаю, это связано с задержкой авторизации и получения адреса.
Интернет поднимается независимо от наличия иксов. Просто в какой-то момент он уходит в фоновую загрузку, пока запускаются остальные демоны.
В rc.local опции -В у меня нету.

В винде сеть тупит с полминуты до запроса логина и пароля, потом ещё с полминуты до получения адреса, так же и получается по времени. У меня в Волгограде провайдер просто неспешный, видимо. И при запуске суппликанта руками, кстати, тоже задержка. Правда, где-то с полминуты всего... так, на глаз.
[gluk47@gluk47-desktop ~]$ ензу куищще
куищще is aliased to `reboot'
Спасибо сказали:
uchkuma
Сообщения: 14

Re: Проблема с автозагрузкой

Сообщение uchkuma »

если судить по винде (наглядно я смог рассмотреть пока в ней), то без использования программы для автоматической авторизации (Odyssey), запрос на ввод логина/пароля появляется спустя 10-15 сек, а с использованием Одиссея, он авторизуется практически без задержек (1-2 сек). и еще 10 сек на присвоение ip-адреса. все!!! поэтому оправдать такое поведение в своей мандриве неспешностью провайдера я не могу.

в комплекте с wpa_supplicant имеется wpa_cli, с помощью которого, как я понимаю, можно отследить текущее состояние и все-кати вычислить на каком этапе имеет место такая задержка и почему. как я догадываюсь, задержка именно в присвоении IP.
нашел в интернете такую строчку "DHCP не выдавало IP из-за IPv6-включил-заработало". интересно...

В rc.local опции -В у меня нету.

объясните, чем чревато наличие опции -B? мне хочется понять логику запуска этого скрипта.

Код: Выделить всё

wpa_supplicant -В -Dwired -c/etc/wpa_supplicant.conf -ieth0
ifup eth0

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 вообще дело не доходило)
Спасибо сказали: