LINUX.ORG.RU

NetworkManager и запуск скриптов по событию


0

1

В связи с {установкой}/{обновлением до}

gnome-base/gnome-3.0.0
решил вместо опробованного в течение времени
net-misc/wicd-1.7.1_beta2-r3
попробовать таки
net-misc/networkmanager-0.8.998

Собственно включил USE флаг, пересобрал мир, все настроил интернет работает. Однако остался вопрос - как запускать свои скрипты по событию подключения networkmanager-а к сети.

Помог arch wiki NetworkManager

Делаю по мануалу меняю только /etc/rc.d на свои /etc/init.d

$ cat /etc/NetworkManager/dispatcher.d/50-ntp-client
#!/bin/sh

IF=$1 # The interface which is brought up or down
STATUS=$2 # The new state of the interface

case "$STATUS" in
    'up') # $IF is up
	exec /etc/init.d/ntpd start #в оригинале /etc/rc.d/ntpd
	;;
    'down') # $IF is down
	# Проверяем наличие активных интерфейсов, иначе stop
	if [ ! `nm-tool|grep State|cut -f2 -d' '` == "connected" ]; then
		exec /etc/init.d/ntpd stop #в оригинале /etc/rc.d/ntpd
	fi
	;;
esac

Права доступа:

$ ls -lr /etc/NetworkManager/dispatcher.d/50-ntp-client
-rwxr-xr-x 1 root root 407 Apr 25 19:26 /etc/NetworkManager/dispatcher.d/50-ntp-client

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

$ /etc/init.d/ntpd status
 * status: stopped

Аналогично вместо ntpd пробую с iptables все равно симптомы те же после загрузки коннект к сети проходит однако * status: stopped

Внимание вопрос- ЧЯДНТ? И как в данном случае вообще правильно?

★★★★★

Скрипт вообще вызывается? Например, вставьте в начало { echo «$@» ; set; } >/tmp/nm-debug.log и посмотрите что там будет написано, и соответственно проведите отладку.

Nastishka ★★★★ ()

> exec /etc/init.d/ntpd start

Не самый удачный выбор. IMHO service ntpd start было бы более правильным решением, в свете прихода systemd

Nastishka ★★★★ ()
Ответ на: комментарий от Nastishka

Об

service ntpd start

не подумал. Спасибо. Но теперь еще загадочнее ntpd стартует а firewall (iptables) нет :) права одинаковые

-rwxr-xr-x 1 root root 518 Apr 28 18:20 60-firewall
-rwxr-xr-x 1 root root 502 Apr 28 18:20 50-ntp-client

сами скрипты одинаковые по шаблону

#!/bin/sh

IF=$1 # The interface which is brought up or down
STATUS=$2 # The new state of the interface

case "$STATUS" in
    'up') # $IF is up
	exec service Бла-Бла start
	;;
    'down') # $IF is down
	# Проверяем наличие активных интерфейсов, иначе stop
	if [ ! `nm-tool|grep State|cut -f2 -d' '` == "connected" ]; then
		exec service Бла-Бла stop
	fi
	;;
esac

Разница только в том, что для ntpd Бла-Бла=ntpd а для firewall Бла-Бла=iptables…

Чего ему еще нужно? В общем загадочная штука!

init_6 ★★★★★ ()
Ответ на: комментарий от Nastishka

Перезагрузил систему:

[root@nemesis ~]# service firewall status
 * status: stopped
[root@nemesis ~]# service ntpd status
 * status: stopped

Нет я все же чего то не понимаю.

init_6 ★★★★★ ()
Ответ на: комментарий от init_6

кстати ,может пригодится, я себе сделал в
/etc/NetworkManager/NetworkManager.conf файлик с содержимым:

[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=true

и благодаря ему, все настройки (ну и скрипты тоже) NM берутся из
старого и доброго /etc/network/interfaces, удобно ))

за арч не скажу.

elipse ★★★ ()
Ответ на: комментарий от elipse

У меня вообще gentoo просто в арчевики нашел хоть что то на нужную тему и более менее свежее. А началось все с того что мне захотелось firewall запускать не автоматом при старте системы а по событию подключения NM-ом к сети.

init_6 ★★★★★ ()
Ответ на: комментарий от init_6

> Но теперь еще загадочнее ntpd стартует а firewall (iptables) нет :)

Не нужно удивляться. Попробую угадать - chkconfig --list iptables говорит On, а chkconfig --list ntpd говорит Off, верно? :-)

Nastishka ★★★★ ()
Ответ на: комментарий от Nastishka

А вот и не угадала ;) Оно показывает bash: chkconfig: command not found поскольку в gentoo этого самого chkconfig просто нет.

init_6 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.