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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: скрипт с netcat в автозагрузке  (Прочитано 1425 раз)

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

Оффлайн RustemNur

  • Автор темы
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
скрипт с netcat в автозагрузке
« : 20 Март 2017, 09:25:45 »
Добрый день
Вопрос скорее всего не про оборудование, но все же...
Имею весы с com-портом, подключенные через девайс COM - LAN.
Читаю из него данные простеньким скриптом:
#!/bin/bash
nc -l 8080 | while read line
do
...
done

Читаю, если скрипт запускаю вручную в командной строки.

Если пишу в /etc/rc.local типа такого:

/root/weightmeter &

- процесс не запускается: ps -A | grep weightmeter ничего не возвращает.
Более того, если я пытаюсь запустить это скрипт из другого скрипта уже после загрузки, процесс также не запускается.
Если я внутри цикла while пишу что-то такое:
echo "qu-qu" >> qu
то файл qu также не создается, если скрипт запущен не явно, а из другого скрипта.

До этого весы были присоединены через девайс COM - USB, и читались точно таким же файлом, только вместо команды netcat использовалась cat /dev/ttyUSB0 - скрипт спокойно стартовал при загрузке. А вот теперь с netcat-ом никак.

Заранее благодарен.

Оффлайн victor00000

  • Забанен
  • Старожил
  • *
  • Сообщений: 15570
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: скрипт с netcat в автозагрузке
« Ответ #1 : 20 Март 2017, 10:40:23 »
Цитировать
/root/weightmeter &
надо смотреть ошибка ли.
/root/weightmeter 2>/tmp/error.log &



Нельзя друзья, дулу - AnrDaemon видите?
~.o

Оффлайн RustemNur

  • Автор темы
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
Re: скрипт с netcat в автозагрузке
« Ответ #2 : 20 Март 2017, 13:11:07 »
Виктор, ошибок нет, файл нулевой длины.

Вот еще что нарыл:
если запускаю этот скрипт на машине, куда весы не коннектятся, то слушающий процесс создается.
Если же скрипт запускаю (пытаюсь запустить) на машине, на коннект с которой настроена железка COM - LAN, то процесс в памяти отсутствует.

И еще раз хочу напомнить: если скрипт запустить напрямую, не через какой-либо скрипт типа rc.local, или любой свой, то процесс создается, и данные с весов читаются.

_____

"
если запускаю этот скрипт на машине, куда весы не коннектятся, то слушающий процесс создается.
Если же скрипт запускаю (пытаюсь запустить) на машине, на коннект с которой настроена железка COM - LAN, то процесс в памяти отсутствует.
"

Я чуть неточно тут выразился: этот эксперимент делаю на одной и той же машине, изменяю только настройки железки (куда ей коннектиться). Так что дело именно в том, коннектится ли извне кто-то к машине со скриптом, или нет.

« Последнее редактирование: 20 Март 2017, 13:39:34 от RustemNur »

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: скрипт с netcat в автозагрузке
« Ответ #3 : 20 Март 2017, 17:59:57 »
Скрипт:
which nc
nc -l 8080 | line

В /etc/rc.local:
script -a -f -c "bash /путь/до/скрипта" "/путь/до/лога_скрипта" &
После запуска смотри лог скрипта.

Оффлайн RustemNur

  • Автор темы
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
Re: скрипт с netcat в автозагрузке
« Ответ #4 : 20 Март 2017, 18:21:36 »
renzrv,
Скрипт запущен Пн 20 мар 2017 20:18:27
/bin/nc


Скрипт выполнен Пн 20 мар 2017 20:18:27

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: скрипт с netcat в автозагрузке
« Ответ #5 : 20 Март 2017, 18:28:27 »
nc -l 8080 | lineПустые строки?

Если:
nc -l 8080 | head -n50?

Оффлайн RustemNur

  • Автор темы
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
Re: скрипт с netcat в автозагрузке
« Ответ #6 : 20 Март 2017, 18:36:12 »

nc -l 8080 | head -n50
?

Ничего. Все та же одна пустая строка.

Оффлайн victor00000

  • Забанен
  • Старожил
  • *
  • Сообщений: 15570
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: скрипт с netcat в автозагрузке
« Ответ #7 : 20 Март 2017, 18:41:24 »
как клиент?
Нельзя друзья, дулу - AnrDaemon видите?
~.o

Оффлайн RustemNur

  • Автор темы
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
Re: скрипт с netcat в автозагрузке
« Ответ #8 : 20 Март 2017, 18:46:06 »
victor00000,
Железка с весами настроена клиентом, комп со скриптом - сервер. Т.е. железяка при каждом срабатывании пишет в секет свою строчку с весом и некоторыми другими признаками, а скрипт пишет их таблицу mySQL.
Это работало в варианте с отправкой веса в com-порт, и работает, но не стартует в варианте с nc.

Оффлайн victor00000

  • Забанен
  • Старожил
  • *
  • Сообщений: 15570
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: скрипт с netcat в автозагрузке
« Ответ #9 : 20 Март 2017, 18:59:38 »
это переход сервер?
#!/bin/bash
while true
do
nc -l 8080 | while read line
do
...
done
done
Нельзя друзья, дулу - AnrDaemon видите?
~.o

Оффлайн RustemNur

  • Автор темы
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
Re: скрипт с netcat в автозагрузке
« Ответ #10 : 20 Март 2017, 19:43:54 »
Цитировать
while true
do ...
Удивительно, но этот вариант из серии "масло маслянное" неожиданно оказался, кажется, рабочим.
Завтра на работе проверю до конца.

Виктор, спасибо!

Тем не менее, какого хрена оно именно так работает... Запущенное напрямую (не из другого скрипта), оно никогда не выходит из чтения сокета, что как бэ и ожидается от netcat-а в режиме ожидания (nc -l).

 

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