LINUX.ORG.RU

Запуск программы в отдельном терминале


0

1

Привет.

У меня есть следующая конструкция nc remotehost remoteport | my_prog

Как мне из баша в терминале запустить несколько таких конструкции? То есть, что бы каждый имел свой STDIN? Терминал новый конечно дб hide.

★★

Последнее исправление: placement_new (всего исправлений: 1)
Ответ на: комментарий от former_anonymous

Разве оно не лишится при этом терминала? Демоны ведь именно для этого и заводят новую сессию.

placement_new ★★
() автор топика

Создать как-нибудь нужное число терминалов и использовать перенаправления?

Yareg ★★★
()

Ничего не понятно, что конкретно нужно:

Как мне из баша запустить несколько таких конструкции

Запуск в фоне: bla bla &

Как мне из баша запустить в терминале

Создать терминал любым соответствующим средством: xterm, tmux, самописная программа на перле/руби/питоне, открывающая псевдотерминалы.

То есть, что бы каждый имел свой STDIN?

Обычное перенаправление ввода, не?

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

>Запуск в фоне: bla bla & Фоновая группа при read(STDIN_FILENO,) получит SIGTTIN.

, открывающая псевдотерминалы.

Псевдотерминал походу то, да.

Обычное перенаправление ввода, не?

Нет, не перенаправления. Хотя можно и через файл конечно.

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

Фоновая группа при read(STDIN_FILENO,) получит SIGTTIN.

Лолшто?

vadim@host3:~$ (grep root < /etc/passwd > /tmp/1) &
[1] 5456
vadim@host3:~$ cat /tmp/1
[1]+  Done                    ( grep root < /etc/passwd > /tmp/1 )
root:x:0:0:root:/root:/bin/bash
vadim@host3:~$ 

ЧЯДНТ?

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

Ты делаешь перенаправление ввода-вывода через файл. Где тут вообще фоновый процесс читает с терминала?

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

Сделай
$ cat > /tmp/1 &
[10] 10259
$

[10]+ Stopped cat > /tmp/1
$ fg %10
cat > /tmp/1
hi, jach
$

И проникнись.

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

> Где тут вообще фоновый процесс читает с терминала?

А где у тебя в постановке вопроса сказано, что тебе требуется _читать_ с терминала? Формулировать вопрос надо было нормально...

Фоновая группа при read(STDIN_FILENO,) получит SIGTTIN.

Причины вещей не путаем. Причина в чтении процессом фоновой группы с _терминала_, а не в том, что это чтение производится через STDIN.

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

> Формулировать вопрос надо было нормально...

Ну возможно, извини.

placement_new ★★
() автор топика

Еще вспомнил по теме. Если нужно скормить программе данные так, чтобы она была уверена, что читает с терминала, можно взять в качестве примера исходники acoc. Она использует либу ruby-tpty для работы с псевдотерминалом.

Сам, правда, не смотрел её код, просто вспомнил, что есть такая штука.

geekless ★★
()

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

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

если коротко хочу сжать траффик. следующим образом

$ssh remoteuser@remotehost_1 'nc localhost 2012 | gzip -c' | gzip -dc | my_prog

$ssh remoteuser@remotehost_2 'nc localhost 2012 | gzip -c' | gzip -dc | my_ptog

И запустить это дело программно.

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