LinuxForum.Fans
Тема

Автозапуск ZeroTier 1.4

Автор: romanfaizulovich 2 сообщений 849 просмотров
02.05.2021 16:22 #436261

Здравствуйте! Один умный человек написал мануал как реализовать запуск Zerotier на роутере Keenetic. Вот пункт из его статьи.->

5. Делаем скрипт запуска ZeroTier при включении роутера. Заходим по адресу /etc/init.d/, это можно сделать через компьютер, предварительно расшарить диск через CIFS/SMB. Создаем там файл с названием "S90zerotier-one" (без расширения) со следующим содержимым:

text
    #! /bin/sh
    case "$1" in
      start)
        if ( pidof zerotier-one )
        then echo "ZeroTier-One is already running."
        else
            echo "Starting ZeroTier-One" ;
            /opt/bin/zerotier-one -d ;
            echo "$(date) Started ZeroTier-One" >> /opt/var/log/zerotier-one.log ;
        fi
        ;;
      stop)
        if ( pidof zerotier-one )
        then
            echo "Stopping ZeroTier-One";
            killall zerotier-one
            echo "$(date) Stopped ZeroTier-One" >> /opt/var/log/zerotier-one.log
        else
            echo "ZeroTier-One was not running" ;
        fi
        ;;
      status)
        if ( pidof zerotier-one )
        then echo "ZeroTier-One is running."
        else echo "ZeroTier-One is NOT running"
        fi
        ;;
      *)
        echo "Usage: /etc/init.d/zerotier-one {start|stop|status}"
        exit 1
        ;;
    esac
    exit 0

И даем файлу права на исполнение. Для этого выполняем команду:
[console=root]chmod +x /etc/init.d/S90zerotier-one[/console]
Так как уменя zerotier стоит на флешке, то переписал пути, и добавил пустой лог файл zerotier-one.log. Вот что получилось.

text
    #! /bin/sh
    case "$1" in
      start)
        if ( pidof zerotier-one )
        then echo "ZeroTier-One is already running."
        else
            echo "Starting ZeroTier-One" ;
            /opt/bin/zerotier-one -d ;
            echo "$(date) Started ZeroTier-One" >> /media/opt/opt/var/log/zerotier-one.log ;
        fi
        ;;
      stop)
        if ( pidof zerotier-one )
        then
            echo "Stopping ZeroTier-One";
            killall zerotier-one
            echo "$(date) Stopped ZeroTier-One" >> /media/opt/opt/var/log/zerotier-one.log
        else
            echo "ZeroTier-One was not running" ;
        fi
        ;;
      status)
        if ( pidof zerotier-one )
        then echo "ZeroTier-One is running."
        else echo "ZeroTier-One is NOT running"
        fi
        ;;
      *)
        echo "Usage: /media/opt/opt/etc/init.d/zerotier-one {start|stop|status}"
        exit 1
        ;;
    esac
    exit 0

При перезапуске роутера служба не запускается.

02.05.2021 16:40 #436262
"romanfaizulovich" написал:
При перезапуске роутера служба не запускается.

Правильно, он ведь при запуске грузит систему из системной прошивки.
Чтобы ваш скрипт работал при презагрузке, вам надо перепрошить микросхему памяти с ОС.

Войдите или зарегистрируйтесь, чтобы ответить.