Page 16 of 17 FirstFirst ... 614151617 LastLast
Results 226 to 240 of 242

Thread: Правильное выключение роутера

  1. #226
    Quote Originally Posted by alexpann View Post
    Если честно, не совсем Вас понял. У меня стабильный коннект с роутером удаленной сети, комп (за роутером) пингуется, определяется в логах роутера, но из-за вылета NetOPa я ничего с ни сделать не могу. Виндовский удаленный помощник на нем отрублен. Как я понимаю, если что-то и возможно сделать, то только из system command роутера. А как - не знаю...
    Если комп пингуется попробуйте у себя на компе правой кнопкой мыши на иконку "Мой компьютер"-"Управление" и напишите что у вас появилось на экране ....

  2. #227
    Quote Originally Posted by alexpann View Post
    Если честно, не совсем Вас понял. У меня стабильный коннект с роутером удаленной сети, комп (за роутером) пингуется, определяется в логах роутера, но из-за вылета NetOPa я ничего с ни сделать не могу. Виндовский удаленный помощник на нем отрублен. Как я понимаю, если что-то и возможно сделать, то только из system command роутера. А как - не знаю...
    чтобы можно было сделать с роутера , надо было заранее позаботиться и установить на компах с виндой cygwin с openssh и пакетом для управления процессами винды, тогда бы можно было через ssh делать. Или, что гораздо проще, заранее разрешить на компах удаленный доступ и ходить на их рабочие столы с винды. Пробрасывать в этом случае надо всего один порт 3389. Утилиты от мелкомягких через нат может и заработают, но для этого надо хотя бы знать какие порты пробросить
    RT-N16 TomatoRAF

  3. #228
    Quote Originally Posted by ryzhov_al View Post
    Последний переход с RT-N16-1.9.2.7-rtn-r3497 на RT-N16-1.9.2.7-rtn-r3702 прошёл без каких-либо проблем. Что я делаю не так?
    У меня например не работает даже простая перезагрузка через веб-интерфейс. Но у меня видимо дело в доп. софте, установленном на винт в /opt
    Скрипты /opt/etc/init.d(S70php-fcgi S80nginx S99rtorrent) почему-то не отрабатывают и не завершают свою работу, просто вися в памяти. Причем если делать это ручками из консоли - они отлично отрабатывают. Соответственно, /tmp/local/sbin/pre-shutdown не завершается, и роутер не перегружается, ожидая завершения скрипта. Если его прибить (kill -9) - роутер перегружается. Наверное, у остальных пользователей та же проблема.
    Возможно, дело в переменной PATH, передаваемой скриптам при запуске, которая отличается от той что в консоли.

    Хотя, до какого-то, очень старого релиза (точно уже и не скажу) все работало нормально.

  4. #229
    Quote Originally Posted by pilson66 View Post
    У меня например не работает даже простая перезагрузка через веб-интерфейс.
    ...Соответственно, /tmp/local/sbin/pre-shutdown не завершается, и роутер не перегружается, ожидая завершения скрипта. Если его прибить (kill -9) - роутер перегружается. Наверное, у остальных пользователей та же проблема.
    pilson66, каким образом надо модифицировать прошивку для того, чтобы она исправляла огрехи в написанных вами скриптах?
    Пришлите патч, вы даже не представляете как он необходим энтузиастам!

  5. #230
    Quote Originally Posted by ryzhov_al View Post
    pilson66, каким образом надо модифицировать прошивку для того, чтобы она исправляла огрехи в написанных вами скриптах?
    Пришлите патч, вы даже не представляете как он необходим энтузиастам!
    Скрипты написаны не мной, а мейнтейнерами соответствующих пакетов.
    По поводу патча - возможно, нужно в pre-shutdown делать экспорт переменных, т.к. они наследуются порожденными процессами, дабы скрипты использовали те же пути и те же бинарники, которые используются в консоли. Это как единственный разумный вариант, объясняющий такое их поведение.
    Опять же, повторяюсь - на каком-то из очень старых релизов такого не было.

  6. #231
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by pilson66 View Post
    Опять же, повторяюсь - на каком-то из очень старых релизов такого не было.
    busybox меняется, какие-то баги чинятся, новые появляются...

  7. #232
    Quote Originally Posted by lly View Post
    busybox меняется, какие-то баги чинятся, новые появляются...
    Вывод из консоли:
    Code:
    pilson@pilson-router pilson:$ env | grep PATH
    PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    Вывод из веб-интерфейса, через "External command":
    Code:
    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin
    Наверняка при ребуте используется тот же порядок что и при выполнении из web-интерфейса.
    Можно попробовать в pre-shutdown экспортировать PATH такого же вида как и в консоли.

    **********
    UPD: Немного поковырялся. Нарыл следующее: При ребуте запускается "/opt/etc/init.d/pre-shutdown", который запускает в свою очередь "/bin/sh /opt/etc/init.d/rc.stop".
    rc.stop, в свою очередь, запускает скрипты остановки демонов. скрипты отрабатывают, но демоны не прибиваются полностью, превращаясь в зомби-процессы:
    Code:
    root       422  0.0  0.0      0     0 ?        Zs   13:24   0:00 [cron] <defunct>
    root       424  0.2  0.0      0     0 ?        Zs   13:24   0:00 [php-fcgi] <defunct>
    root       431  0.0  0.0      0     0 ?        Z    13:24   0:00 [php-fcgi] <defunct>
    root       455  0.0  0.2   1380   380 ?        Ss   13:25   0:00 /bin/sh /usr/local/sbin/pre-shutdown
    root       472  0.0  0.3   1384   412 ?        S    13:25   0:00 /bin/sh /opt/etc/init.d/rc.stop
    root       476  0.0  0.3   1380   392 ?        S    13:25   0:00 /bin/sh /opt/etc/init.d/S70php-fcgi stop
    root       477  0.0  0.2   1072   352 ?        S    13:25   0:00 /opt/bin/killall -q -w /opt/bin/php-fcgi
    Отсюда видно, что /opt/bin/killall ожидает пока php-fcgi убьется окончательно, ну и соответственно дальше ничего не происходит, ибо выполнение висит на этой строке скрипта.
    Так вот, собственно, вопрос: Почему при остановке демона из консоли все проходит отлично, и при остановке через ребут - он остается висеть как зомби?
    Думаю что решив эту проблему - решится "неперегружание" если не у всех, то у многих.
    Last edited by pilson66; 27-12-2011 at 11:28.

  8. #233
    Спасибо, что пытаетесь разобраться сами.
    Quote Originally Posted by pilson66 View Post
    Вывод из консоли:...
    Вывод из веб-интерфейса, через "External command":...
    При работе из консоли работают настройки вашего профиля с его специфичными переменными среды. Запуск и останов системы ведётся от "от лица" процесса init, который о существовании вашего профиля знать ничего не должен. Пропишите полные пути ко всем исполняемым файлам в pre-shutdown и проблема, скорее всего, будет решена.

    Поверьте, никакой разработчик (прошивки) не станет включать настройки из вашего профиля в работу системных процессов.

  9. #234
    Quote Originally Posted by ryzhov_al View Post
    Спасибо, что пытаетесь разобраться сами.
    В сообщении выше я добавил еще кой-чего (это на случай если вы вдруг не увидели). Посмотрите, вожможно что-то придет на ум...


    Пропишите полные пути ко всем исполняемым файлам в pre-shutdown и проблема, скорее всего, будет решена.
    Да куда уж полнее...

    Code:
    #!/bin/sh
    
    /sbin/flashfs save
    /sbin/flashfs commit
    /sbin/flashfs enable
    /opt/etc/init.d/rc.stop
    sleep 20
    /bin/umount /opt
    /bin/umount /tmp/harddisk
    /sbin/swapoff /dev/discs/disca/part1
    Last edited by pilson66; 27-12-2011 at 11:52.

  10. #235
    Quote Originally Posted by pilson66 View Post
    При ребуте запускается "/opt/etc/init.d/pre-shutdown", который запускает в свою очередь "/bin/sh /opt/etc/init.d/rc.stop".
    rc.stop, в свою очередь, запускает скрипты остановки демонов.
    Видимо, имелось в виду следующее: При ребуте запускается "/tmp/local/sbin/pre-shutdown", который запускает в свою очередь "/bin/sh /opt/etc/init.d/rc.stop"
    Запуск /tmp/local/sbin/pre-shutdown говорит о том, что прошивка сделала всё от неё зависящее для грациозного завершения работы, остальное же зависит от того, чем вы наполнили скрипт /tmp/local/sbin/pre-shutdown и другие зависимые. С этого места корректность завершения работы целиком зависит исключительно от вас, и никакие патчи за вас эту работу не сделают.
    Quote Originally Posted by pilson66 View Post
    скрипты отрабатывают, но демоны не прибиваются полностью, превращаясь в зомби-процессы:
    Так задайте вопрос в профильной теме!

    Прошу вас принять то, что в прошивке никогда не будет кнопки "сделай круто" или патча "сделай всё за меня". После открытия консоли telnet/SSH весь дальнейший успех действий зависит... нет, не от прошивки. От вас.


    Quote Originally Posted by pilson66 View Post
    Да куда уж полнее...
    Полнее - это когда вы попробуете следовать рекомендациям из профильной темы и сделаете что-нибудь с теми процессами, которые не завершили работу за отведённое на это время.
    Last edited by ryzhov_al; 27-12-2011 at 11:55.

  11. #236
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by pilson66 View Post
    Так вот, собственно, вопрос: Почему при остановке демона из консоли все проходит отлично, и при остановке через ребут - он остается висеть как зомби?
    Думаю что решив эту проблему - решится "неперегружание" если не у всех, то у многих.
    Судя по приведённой картинке - это проблемы с обработкой сигналов SIGCHLD в самом демоне, нежели чем в /opt/bin/killall. Ну и протухшая uClibc из optware может подгадить.

    В любом случае лучше:
    1. ставить из optware минимум и ни в коем случае не системные утилиты
    2. Попробовать перейти на новый репозитарий от ryzhov_al

  12. #237
    Quote Originally Posted by lly View Post
    Судя по приведённой картинке - это проблемы с обработкой сигналов SIGCHLD в самом демоне, нежели чем в /opt/bin/killall. Ну и протухшая uClibc из optware может подгадить.
    На мой взгяд всё гораздо проще. У парня работает kill -9 из консоли. Он просто не удосуживается "попросить" с его помощью "замешкавшихся" "освободить помещение" с помощью
    Code:
    lsof -t /dev/discs/disc0/part1 | xargs kill -9
    У меня при отработке скриптов unslung демоны crond и php-fcgi тоже уходили в <defunc> вплоть до "особой просьбы". Именно оттуда растут ноги многочисленным рекомендациям делать не размонтирование файловых систем, а их перемонтирование на чтение. Так как это единственный способ сохранить целостность файловой системы при висящих зомби.

  13. #238
    Quote Originally Posted by lly View Post
    Судя по приведённой картинке - это проблемы с обработкой сигналов SIGCHLD в самом демоне, нежели чем в /opt/bin/killall
    Тогда почему из локального профиля (root) с остановкой демонов нет никаких проблем?

    В любом случае лучше:
    1. ставить из optware минимум и ни в коем случае не системные утилиты
    2. Попробовать перейти на новый репозитарий от ryzhov_al
    Судя по переменной PATH - система в момент запуска pre-shutdown не знает о наличии системных утилит в /opt и не использует их, если к конкретной утилите явно не указать абсолютный путь. Killall от busybox не используется скорее всего по причине того что в нем нет опции "-w". В настройках busybox возможно активировать эту опцию, или ее принципиально там нет?

  14. #239
    Quote Originally Posted by pilson66 View Post
    Тогда почему из локального профиля (root) с остановкой демонов нет никаких проблем?
    <facepalm>
    Потому, что процесс init при завершении работы о ваших PATH=.../opt/bin и других чудесных настройках пользовательского профиля даже не догадывается. Прописывайте полные пути в скриптах, прибивайте зависшие зомби-процессы перед размонтированием дисков и всё будет работать как часы. Рецепт решения своей проблемы вроде бы узнали, так чем же ещё вам помочь?
    Last edited by ryzhov_al; 27-12-2011 at 12:49. Reason: Падежи

  15. #240
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by pilson66 View Post
    Тогда почему из локального профиля (root) с остановкой демонов нет никаких проблем?
    ryzhov_al расписал предельно подробно, мне добавить нечего.

    Killall от busybox не используется скорее всего по причине того что в нем нет опции "-w". В настройках busybox возможно активировать эту опцию, или ее принципиально там нет?
    Пока никто не сделал. Планы добавить своими силами есть, но времени катастрофически не хватает.

Page 16 of 17 FirstFirst ... 614151617 LastLast

Similar Threads

  1. Перезагрузка и выключение роутера после прошивки
    By pheny in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 161
    Last Post: 01-05-2014, 21:56
  2. Отправка и получение SMS с роутера
    By reyko in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 15
    Last Post: 04-03-2013, 12:27

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •