User
Скорее всего скрипт запускается слишком рано после старта роутера. На keenetic omni я решил проблему, добавив минутную задержку на запуск:
в /opt/etc/init.d/S51tpws
/opt/etc/init.d/S51tpws
в конце скрипта, где описаны case start stop и т.д. добавил sleep 60 в case start. Ну и заодно поправил путь к PIDFILE
sleep 60
PIDFILE=/opt/var/run/tpws.pid
долучилось так:
#!/bin/sh SCRIPT=/opt/root/git/zapret/tpws/tpws PIDFILE=/opt/var/run/tpws.pid ARGS="--daemon --bind-addr 192.168.0.1 --port 999 --disorder --tlsrec=sni --split-pos=2 --pidfile $PIDFILE" start() { if [ -f $PIDFILE ] && kill -0 $(cat $PIDFILE); then echo 'Service TPWS is already running' >&2 return 1 fi $SCRIPT $ARGS iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-port 999 iptables -t nat -A PREROUTING -i br0 -p tcp --dport 443 -j REDIRECT --to-port 999 echo 'Started TPWS service' } stop() { if [ ! -f "$PIDFILE" ] || ! kill -0 $(cat "$PIDFILE"); then echo 'Service TPWS is not running' >&2 return 1 fi echo 'Stopping TPWS service...' kill -15 $(cat "$PIDFILE") && rm -f "$PIDFILE" iptables -t nat -D PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-port 999 iptables -t nat -D PREROUTING -i br0 -p tcp --dport 443 -j REDIRECT --to-port 999 } status() { if [ -f $PIDFILE ] && kill -0 $(cat $PIDFILE); then echo 'Service TPWS is running' else echo 'Service TPWS is stopped' fi } case "$1" in start) sleep 60 start ;; stop) stop ;; status) status ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart|status}" esac
Скорее всего скрипт запускается слишком рано после старта роутера. На keenetic omni я решил проблему, добавив минутную задержку на запуск:
в
/opt/etc/init.d/S51tpws
в конце скрипта, где описаны case start stop и т.д. добавил
sleep 60
в case start. Ну и заодно поправил путь к PIDFILEPIDFILE=/opt/var/run/tpws.pid
долучилось так: