Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: после выполнения скриптов из if-up.d не возвращает в консоль  (Прочитано 1764 раз)

0 Пользователей и 1 Гость просматривают эту тему.

mithrusc

  • Автор темы
  • Гость
Ситуация - скрипты запуска лежат в /etc/network/if-up.d , сеть l2tp/Vpn поднимается с pre-up команды в /etc/network/interfaces, эти скрипты запускают iptables и udpxy(раздает iptv), при перезапуске одного из интерфейсов вручную и после его поднятия - не выполняет "exit" т.е не возвращает в консоль и как бы "подвисает" udpxy хотя и пишет лог в файл(как отключить не знаю), иначе выводил всю информацию после перезапуска интерфейса прямо в текущий терминал, понимаю что что то в скриптах не то, можно как то от этого избавиться? (exit 0 в конце скриптов есть)

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Посмотри в дебаге, на какой команде подвисает. Для этого, если скрипт на баше, то к шабангу скрипта добавь опцию -x, т.е. чтоб было так #!/bin/bash -x и перезапусти интересующий интерфйес.

mithrusc

  • Автор темы
  • Гость
там ключ e по умолчанию, попробовал с x ничего не изменилось. В таких скриптах /bin/sh стоит, с bash  я тоже проверил.
вот пример
#!/bin/sh -e
# Called when a new interface comes up
# Written by LaMont Jones <lamont@debian.org>
cd /home/username/udpxy-1.0-Chipmunk-16 && ./udpxy -vTS -a 192.168.1.1 -p 5050 -m eth1 -c 2 -B 8192 -l udpxy.log
exit 0
#!/bin/sh -x
# Called when a new interface comes up
# Written by LaMont Jones <lamont@debian.org>
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat
modprobe ip_nat_ftp
iptables-restore </var/backups/iptables-rules
exit 0
после -x ключа к выводу после команды ifup ethX добавляются "+"
(Нажмите, чтобы показать/скрыть)
Цитировать
Посмотри в дебаге
cat /var/log/debug?
там тихо, на это время одно сообщение - No ipv6 routers present.
Зависает это не так я выразился, терминал не возвращается к исходному состоянию user@pcname:~$ думаю теперь ясно должно быть
« Последнее редактирование: 14 Июня 2010, 20:34:31 от mithrusc »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
cat /var/log/debug?
Нет, я имел ввиду, что -x для баша это дебаг режим, который выводит в stderr порядок выполнения скрипта и все подстановки.

Зависает это не так я выразился, терминал не возвращается к исходному состоянию user@pcname:~$ думаю теперь ясно должно быть
Теперь ясно. Не юзал я этого зверька, но возможно он и не должен возвращать консоль и это нормально. А запускать его надо через start-stop-daemon с соответствующими опциями.

Пользователь решил продолжить мысль 14 Июня 2010, 21:05:27:
Ага. Я в хотелках на ланчпаде нашел, чувак просит запакетировать его для убунты и скриптик для запуска (init.d) предлагает, который какраз и юзает start-stop-daemon. Можешь воспользоваться им, он в первом аттаче: https://bugs.launchpad.net/ubuntu/+bug/523685
« Последнее редактирование: 14 Июня 2010, 21:05:27 от Mam(O)n »

mithrusc

  • Автор темы
  • Гость
make install ему сделал хотя по его же readme это не обязательно, ставится в "/usr/local/bin/udpxy",скрипт поправил (добавил путь/путь к демону), работает но не так как должен бы, starting...и наблюдаю вывод программы, если в лог идет то ничего не сделаешь, только закрыть терминал остается, stop команда возвращает fail.
« Последнее редактирование: 15 Июня 2010, 16:42:18 от mithrusc »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Из параметров попробуй убрать опцию -T

Цитата: Выдержка из мануала
-T - в случае запуска администратором (root) не пытаться работать в режиме сервера [по умолчанию - работать в режиме сервера (daemon), если процесс запущен пользователем с административными правами]

При запуске непривилегированным пользователем udpxy будет работать в окне терминала  и реагировать на интерактивные команды терминальной сессии, такие как выход в фоновый режим, прерывание по Ctrl-C и т.д. При запуске администратором (root) или пользователем с привилегиями администратора (0 == $EUID) приложение по умолчанию попытается работать в  режиме сервера (daemon). Задействовав переключатель -T, пользователь может заставить udpxy при запуске администратором (root) работать с текущим терминалом.

mithrusc

  • Автор темы
  • Гость
Спасибо, помогло. После того как убрал -T потребовал указать куда писать лог, стартует без вывода в консоль, жаль нельзя остановить.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Остановить можно :)
kill по PID'у
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Тогда попробуй такой вариант, но снова с -T:
(Нажмите, чтобы показать/скрыть)

зы. Оттестировать не на чем, пишу по памяти и мануалам.

mithrusc

  • Автор темы
  • Гость
Да, теперь работает, еще раз спасибо за вашу помощь.
Цитировать
Остановить можно Smiley
kill по PID'у
ну кое какие команды я знаю все таки)))
проблема в том что когда остановка /etc/init.d/process stop не отрабатывается, этот скрипт не лезет в автозапуск через rc. , вот сейчас поставил на те ранлевелы что прописаны в скрипте и оно заработало.
Вот окончательный вариант(может нужно кому будет), у вас там пути не правильные.
(Нажмите, чтобы показать/скрыть)

Цитировать
/var/log/udpxy.log
Вы советуете сюда лог писать несмотря на то что он получается на десятки мегабайт? Я мог бы конечно как то по крону заставить его удалять файл и создавать вновь, или можно как то еще?
« Последнее редактирование: 29 Июня 2010, 19:10:18 от mithrusc »

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Вы советуете сюда лог писать несмотря на то что он получается на десятки мегабайт?
Естественно, этот каталог специально предназначен для ведения логов. Я советую разобраться с параметрами старта в плане уровней логгирования.

Я мог бы конечно как то по крону заставить его удалять файл и создавать вновь, или можно как то еще?
Угу, logrotate. Обрати внимание на каталог /etc/logrotate.d

mithrusc

  • Автор темы
  • Гость
Пришлось поставить, anacron, странно однако что его не было по умолчанию, иначе скрипты не отрабатывал
Цитировать
man logrotate
спасибо за наводку, xman удобнее однако)

 

Страница сгенерирована за 0.061 секунд. Запросов: 23.