LINUX.ORG.RU
ФорумTalks

Две тривиальные практические задачи про pipe и nohup


0

0

Есть две тривиальные практические задачи, обе кое-как решены. Возможно, имеется не коекакерское решение, хотелось бы услышать ваши соображения.

Задача # 1: Имеем программу ¬- черный ящик, которая слушает некий tcp-порт, полученные данные обрабатывает и выдает результаты в stderr и stdout, которые, в свою очередь, нужно отдавать двум разным фильтрам. Вопрос: как направить вывод из stderr в конвейер?

Задача # 2: Пользователь работает с готовым java-приложением (под x-window), которое запускает дочерние процессы (perl скрипты). Вопрос: как демонизировать (nohup) эти дочерние процессы?

В обоих случаях исходный код недоступен.

Deleted
Ответ на: комментарий от hatefu1_dead

Спасибо, тоже варинат, можно попробовать. Пока сделано изощренней: исходная программа переименована и написана болванка, которая вызывает оригинал и фильтры.

Deleted
()
Ответ на: комментарий от birdie

> 2. alias perl='screen -d -m perl'

А вот так делать не хотелось бы :)

Deleted
()

Можно без mkfifo.

Допустим, приложение называется listen, stdout нужно послать на stdout-handler, а stderr - на stderr-handler. Делаем так:

{ listen | stdout-handler; } 3>&1 1>&2 2>&3 | stderr-handler

Sikon ★★★
()
Ответ на: комментарий от DemonZLa

А при чём тут эта маленькая командочка?

Teak ★★★★★
()
Ответ на: комментарий от Teak

> Не вполне понятно, чем это отличается от моего варианта, кроме того, что мой работает.

Упс, не заметил сообщение.

Sikon ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.