Сценарий NetworkManager - if-down.d не выполняется

я пытаюсь использовать [клавишу F5] и [F6], чтобы отправить СМС с компьютера на телефон через Gmail когда мой компьютер входит или выходит из сети. Основной скрипт написан на Perl и скриптов в папках по сути фантики вокруг него. Вот скрипт на Perl, ~user/bin/laptopSMS.pl:

#!/usr/bin/perl use strict; use warnings; use Email::Send; use Email::Send::Gmail; use Email::Simple::Creator; my $addy = q{myEmail@gmail.com}; my $pass = q{myPass}; my $sms = q{myPhoneNumber@tmomail.net}; my $email = Email::Simple->create( header => [ From => $addy, To => $sms, Subject => "$ARGV[0]", ], body => "$ARGV[1] / $ARGV[2]", ); my $sender = Email::Send->new( { mailer => 'Gmail', mailer_args => [ username => $addy, password => $pass, ] } ); eval { $sender->send($email) }; die "Error sending email: $@" if $@;

следующий скрипт - /etc/network/if-up.d/99postconnect_laptopSMS:

#!/bin/bash set -e if [ "$IFACE" == "wlan0" ]; then ipaddr=`ip addr | grep inet[^6] | grep -v 127.0.0.1 | awk {'print $2'} | sed 's!/[0-9]*!!g'` ssid=`iwgetid -r` ~user/bin/laptopSMS.pl "connected" "$ssid" "$ipaddr" fi

это прекрасно работает, и я получаю текстовое сообщение всякий раз, когда мой телефон попадает в сеть; соответствующие if-down.d скрипт для отправки "отключить" сигнал, однако, не:

#!/bin/bash set -e if [ "$IFACE" == "wlan0" ]; then ~user/bin/laptopSMS.pl "disconnect" "disconnect" "disconnect" fi

это не выполняется; я попробовал поставить следующий код в скрипт, чтобы увидеть, если все на самом деле работает:

ifdowntest=/home/user/ifdown_test.txt date >> $ifdowntest whoami >> $ifdowntest ifconfig >> $ifdowntest sleep 5

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

выход ifconfig >> $ifdowntest показывает, что как wlan0 нет IP - это была снесена. Я могу сделать этот скрипт, чтобы выполнить заранее-вниз (я думал, что папке if-down.d) или как-то изменить что-то, чтобы сделать эту работу? Обратите внимание, что это занимает около 3 секунд для скрипта Perl в том случае, если запускать его вручную.

чистки рядов: я обдираю сети вручную нажатием через networkmanager applet и нажав кнопку "отключить". Я мог бы просто убить моего маршрутизатора, чтобы проверить, что слишком, но я не знаю, если есть разница между отключением вручную и АП больше не существует.

2
задан 21 September 2011 в 11:18

6 ответов

Попробуйте переместить сценарий «disconnect» в /etc/network/if-post-down.d, это каталог, который должен запускаться, когда NetworkManager отключается, а не if-down.d (что означало бы запуск чего-то поскольку устройство опускается, а не когда оно просто отключено). Для того, чего вы пытаетесь достичь, это не должно быть проблемой, и на самом деле не пытайтесь отправлять SMS через сеть, в то время как шлюз по умолчанию, возможно, еще не был обновлен.

Это, очевидно, предполагает, что вы затем все еще есть другое соединение (проводное) для отправки SMS. Все остальное слишком неопределенно и ненадежно, чтобы его можно было использовать (вы не можете ожидать, что беспроводное соединение будет работать достаточно к моменту запуска скриптов для отправки SMS-сообщения).

Если вы хотите исследуйте далее, вы можете посмотреть /etc/network/if-post-down.d .

4
ответ дан 25 July 2018 в 21:18

Попробуйте переместить сценарий «disconnect» в /etc/network/if-post-down.d, это каталог, который должен запускаться, когда NetworkManager отключается, а не if-down.d (что означало бы запуск чего-то поскольку устройство опускается, а не когда оно просто отключено). Для того, чего вы пытаетесь достичь, это не должно быть проблемой, и на самом деле не пытайтесь отправлять SMS через сеть, в то время как шлюз по умолчанию, возможно, еще не был обновлен.

Это, очевидно, предполагает, что вы затем все еще есть другое соединение (проводное) для отправки SMS. Все остальное слишком неопределенно и ненадежно, чтобы его можно было использовать (вы не можете ожидать, что беспроводное соединение будет работать достаточно к моменту запуска скриптов для отправки SMS-сообщения).

Если вы хотите исследуйте далее, вы можете посмотреть /etc/network/if-post-down.d .

4
ответ дан 2 August 2018 в 02:57

Попробуйте переместить сценарий «disconnect» в /etc/network/if-post-down.d, это каталог, который должен запускаться, когда NetworkManager отключается, а не if-down.d (что означало бы запуск чего-то поскольку устройство опускается, а не когда оно просто отключено). Для того, чего вы пытаетесь достичь, это не должно быть проблемой, и на самом деле не пытайтесь отправлять SMS через сеть, в то время как шлюз по умолчанию, возможно, еще не был обновлен.

Это, очевидно, предполагает, что вы затем все еще есть другое соединение (проводное) для отправки SMS. Все остальное слишком неопределенно и ненадежно, чтобы его можно было использовать (вы не можете ожидать, что беспроводное соединение будет работать достаточно к моменту запуска скриптов для отправки SMS-сообщения).

Если вы хотите исследуйте далее, вы можете посмотреть /etc/network/if-post-down.d .

4
ответ дан 4 August 2018 в 18:47

Попробуйте переместить сценарий «disconnect» в /etc/network/if-post-down.d, это каталог, который должен запускаться, когда NetworkManager отключается, а не if-down.d (что означало бы запуск чего-то поскольку устройство опускается, а не когда оно просто отключено). Для того, чего вы пытаетесь достичь, это не должно быть проблемой, и на самом деле не пытайтесь отправлять SMS через сеть, в то время как шлюз по умолчанию, возможно, еще не был обновлен.

Это, очевидно, предполагает, что вы затем все еще есть другое соединение (проводное) для отправки SMS. Все остальное слишком неопределенно и ненадежно, чтобы его можно было использовать (вы не можете ожидать, что беспроводное соединение будет работать достаточно к моменту запуска скриптов для отправки SMS-сообщения).

Если вы хотите исследуйте далее, вы можете посмотреть /etc/network/if-post-down.d .

4
ответ дан 6 August 2018 в 03:11

Попробуйте переместить сценарий «disconnect» в /etc/network/if-post-down.d, это каталог, который должен запускаться, когда NetworkManager отключается, а не if-down.d (что означало бы запуск чего-то поскольку устройство опускается, а не когда оно просто отключено). Для того, чего вы пытаетесь достичь, это не должно быть проблемой, и на самом деле не пытайтесь отправлять SMS через сеть, в то время как шлюз по умолчанию, возможно, еще не был обновлен.

Это, очевидно, предполагает, что вы затем все еще есть другое соединение (проводное) для отправки SMS. Все остальное слишком неопределенно и ненадежно, чтобы его можно было использовать (вы не можете ожидать, что беспроводное соединение будет работать достаточно к моменту запуска скриптов для отправки SMS-сообщения).

Если вы хотите исследуйте далее, вы можете посмотреть /etc/network/if-post-down.d .

4
ответ дан 7 August 2018 в 20:52

Попробуйте переместить сценарий «disconnect» в /etc/network/if-post-down.d, это каталог, который должен запускаться, когда NetworkManager отключается, а не if-down.d (что означало бы запуск чего-то поскольку устройство опускается, а не когда оно просто отключено). Для того, чего вы пытаетесь достичь, это не должно быть проблемой, и на самом деле не пытайтесь отправлять SMS через сеть, в то время как шлюз по умолчанию, возможно, еще не был обновлен.

Это, очевидно, предполагает, что вы затем все еще есть другое соединение (проводное) для отправки SMS. Все остальное слишком неопределенно и ненадежно, чтобы его можно было использовать (вы не можете ожидать, что беспроводное соединение будет работать достаточно к моменту запуска скриптов для отправки SMS-сообщения).

Если вы хотите исследуйте далее, вы можете посмотреть /etc/network/if-post-down.d .

4
ответ дан 10 August 2018 в 09:13

Другие вопросы по тегам:

Похожие вопросы: