The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Остановка работы скрипта при определённом выводе сообщения"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Остановка работы скрипта при определённом выводе сообщения"  –1 +/
Сообщение от Junior email(ok) on 14-Июн-15, 20:39 
Здравствуйте!

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

Необходимо в скрипте прописать реакцию  на появление сообщения при работе команды.
Т.е.

#!/bin/bash

/usr/local/bin -o option1 -b option2 -c option3
PID=$!
а вот здесь нужно перехватить сообщение с вывода работы команды, например "command work, press ctrl+c" и передать CTRL+C вместо пользователя за клавиатурой.
kill -INT $PID

Что-то типа работы trap, но там ждут срабатывания определённого сигнала, а здесь необходимо сработать от сообщения.
Просто убить процесс нельзя, т.к. потеряются данные, которые приложение пишет в свой файл. А если его оборвать через ctrl+c, оно сохраняет данные.

Заранее спасибо, коллеги.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Остановка работы скрипта при определённом выводе сообщения"  +/
Сообщение от Pahanivo (ok) on 15-Июн-15, 07:44 
начни с этого
https://www.opennet.ru/base/dev/interactive_tools.txt.html

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Остановка работы скрипта при определённом выводе сообщения"  –2 +/
Сообщение от Junior email(ok) on 15-Июн-15, 08:15 
> начни с этого
> https://www.opennet.ru/base/dev/interactive_tools.txt.html

Спасибо за ссылку, очень интересная статья.
Но в моём случае это не выход, к сожалению.
Устройство, где будет работать скрипт - это маршрутизатор с предустановленной Linux в весьма кастрированном виде, где ОС занимает менее 10 Мб. Поставить туда что-то нереально и необходимо использовать стандартные инструменты скриптового языка.

Ещё раз спасибо за ссылку!

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Остановка работы скрипта при определённом выводе сообщения"  +/
Сообщение от name (??) on 15-Июн-15, 09:52 
>> начни
> Устройство, где будет работать скрипт - это маршрутизатор с предустановленной Linux в

Тогда запускайте скрипт на сервере, который будет подключаться к вашему устройству

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Остановка работы скрипта при определённом выводе сообщения"  –1 +/
Сообщение от Junior email(ok) on 15-Июн-15, 09:54 
>>> начни
>> Устройство, где будет работать скрипт - это маршрутизатор с предустановленной Linux в
> Тогда запускайте скрипт на сервере, который будет подключаться к вашему устройству

Так это устройство (маршрутизатор) будет подключаться к другим, проверять их отклики по определённому алгоритму, а сами устройства будут динамически меняться.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Остановка работы скрипта при определённом выводе сообщения"  +/
Сообщение от Аноним (??) on 15-Июн-15, 16:36 
>> Тогда запускайте скрипт на сервере, который будет подключаться к вашему устройству
> Так это устройство (маршрутизатор) будет подключаться к другим, проверять их отклики по
> определённому алгоритму, а сами устройства будут динамически меняться.

Тогда запускайте скрипт на сервере, который будет подключаться к другим, проверять их отклики по определённому алгоритму, а сами устройства будут динамически меняться.
А на маршрутизаторе - пропишите правила чтоб сервер смог это сделать.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Остановка работы скрипта при определённом выводе сообщения"  –2 +/
Сообщение от Junior email(ok) on 15-Июн-15, 17:06 
>>> Тогда запускайте скрипт на сервере, который будет подключаться к вашему устройству
>> Так это устройство (маршрутизатор) будет подключаться к другим, проверять их отклики по
>> определённому алгоритму, а сами устройства будут динамически меняться.
> Тогда запускайте скрипт на сервере, который будет подключаться к другим, проверять их
> отклики по определённому алгоритму, а сами устройства будут динамически меняться.
> А на маршрутизаторе - пропишите правила чтоб сервер смог это сделать.

Всё-таки задача стоит именно такая, как описано. Без поднятия других серверов и устройств. Коллеги, если есть что-то по ситуацию - с благодарностью выслушаю рекомендации и советы.

Спасибо.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Остановка работы скрипта при определённом выводе сообщения"  +/
Сообщение от name (??) on 18-Июн-15, 10:39 
> Всё-таки задача стоит именно такая, как описано. Без поднятия других серверов и
> устройств. Коллеги, если есть что-то по ситуацию - с благодарностью выслушаю

Блин, у вас есть устройство, вы хотите запустить на нем некий функционал, его в нем нет. Следовательно вам нужно изменить софт этого устройства. Если вы не можете изменить софт, значит берете другое устройство.

В вашем случае компилируйте дополнительные утилиты для вашего маршрутизатора, копируйте куда-нибудь, флэшка, фтп-сервер.
На устройстве делаете скрипт, который закачивает эти утилиты в память и потом использует

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Остановка работы скрипта при определённом выводе сообщения"  +/
Сообщение от Junior email(ok) on 18-Июн-15, 17:25 

> Блин, у вас есть устройство, вы хотите запустить на нем некий функционал,
> его в нем нет. Следовательно вам нужно изменить софт этого устройства.
> Если вы не можете изменить софт, значит берете другое устройство.

Не подходит, устройство изменить нельзя

> В вашем случае компилируйте дополнительные утилиты для вашего маршрутизатора, копируйте
> куда-нибудь, флэшка, фтп-сервер.

Для начала необходимо разобраться КАКИМ ОБРАЗОМ возможно решить эту задачу не используя громоздкой конструкции. Иначе либо придётся следить, чтобы все "костыли" исправно работали. Метод использования expect хорош, но он работает при получении какого-либо сигнала или команды, а не сообщения в логах. По-крайней мере я не нашёл такого описания в его функционале.
> На устройстве делаете скрипт, который закачивает эти утилиты в память и потом
> использует

Это не сложно, важнее сперва найти метод и способ решения задачи.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Остановка работы скрипта при определённом выводе сообщения"  +/
Сообщение от anonymous (??) on 18-Июн-15, 21:47 
>[оверквотинг удален]
>> В вашем случае компилируйте дополнительные утилиты для вашего маршрутизатора, копируйте
>> куда-нибудь, флэшка, фтп-сервер.
> Для начала необходимо разобраться КАКИМ ОБРАЗОМ возможно решить эту задачу не используя
> громоздкой конструкции. Иначе либо придётся следить, чтобы все "костыли" исправно работали.
> Метод использования expect хорош, но он работает при получении какого-либо сигнала
> или команды, а не сообщения в логах. По-крайней мере я не
> нашёл такого описания в его функционале.
>> На устройстве делаете скрипт, который закачивает эти утилиты в память и потом
>> использует
> Это не сложно, важнее сперва найти метод и способ решения задачи.

Опишите тогда нормально задачу, а не ее ограничения.
Для указанных ограничений уже подсказали способы реализации.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Остановка работы скрипта при определённом выводе сообщения"  +/
Сообщение от Junior email(ok) on 19-Июн-15, 06:22 
>[оверквотинг удален]
>> Для начала необходимо разобраться КАКИМ ОБРАЗОМ возможно решить эту задачу не используя
>> громоздкой конструкции. Иначе либо придётся следить, чтобы все "костыли" исправно работали.
>> Метод использования expect хорош, но он работает при получении какого-либо сигнала
>> или команды, а не сообщения в логах. По-крайней мере я не
>> нашёл такого описания в его функционале.
>>> На устройстве делаете скрипт, который закачивает эти утилиты в память и потом
>>> использует
>> Это не сложно, важнее сперва найти метод и способ решения задачи.
> Опишите тогда нормально задачу, а не ее ограничения.
> Для указанных ограничений уже подсказали способы реализации.

А что не ясно из первого сообщения? Я уточню.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "Остановка работы скрипта при определённом выводе сообщения"  +/
Сообщение от мимопроходил email on 18-Июл-15, 00:20 
> А что не ясно из первого сообщения? Я уточню.

#!/bin/bash

/usr/local/bin -o option1 -b option2 -c option3
PID=$!
а вот здесь нужно перехватить сообщение с вывода работы команды, например "command work, press ctrl+c" и передать CTRL+C вместо пользователя за клавиатурой.
kill -INT $PID

++++++++++++++++++++++++++++++++

#!/bin/bash
PID=$!

/usr/local/bin -o option1 -b option2 -c option3 | grep 'press crtl+c' && kill -INT $PID

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру