Сделайте переподключение скрипта Openwrt для запуска при загрузке и продолжайте проверять текущий статус - PullRequest
0 голосов
/ 24 октября 2019

У меня есть это, что довольно хорошо работает в openwrt:

#!/bin/sh
#set -x #debug
while true; do
  wget -O /tmp/extip 'http://ifconfig.me/ip' 2>/dev/null
  EXT_IP=$(cat /tmp/extip)
  INT_IP="$(ip addr show dev wwan0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)"
  ROOTER=/usr/lib/rooter
  [ -z $EXT_IP ] && continue
  if [ $(echo "$INT_IP" | grep "$EXT_IP" -q; echo $?) -eq 1 ]; then
    /sbin/ifup wan1
    $ROOTER/pwrtoggle.sh 1
    echo "NAT-DETECT: External ($EXT_IP) does not match Internal ($INT_IP); Reconnecting WAN1..." > /dev/kmsg
    /etc/init.d/firewall restart
    /etc/init.d/miniupnpd restart
  fi
  sleep 30
done
#set +x #debug

Как мне заставить этот скрипт запускаться при загрузке (или через некоторое время) и позволить ему работать в фоновом режиме навсегда, проверяя текущее состояние IP иделать свою работу? Кроме того, похоже, что не очень хорошо иметь скрипт инициализации со сном, потому что это считается плохой формой. Что бы оптимизировать форму этого скрипта, чтобы она соответствовала моей цели?

Заранее спасибо!

1 Ответ

1 голос
/ 24 октября 2019

Я установил экран GNU на свой OpenWRT и в /etc/rc.local У меня есть что-то вроде этого:

# start screen in detached mode
screen -dm -S boot -c /dev/null bash /root/bin/monitor.sh 

Он будет работать в фоновом режиме. Вы также можете присоединиться к нему с помощью screen -r boot после входа в систему.

Вы можете попробовать, если он работает для вас.

...