2015-12-08 11 views
0

Я пытаюсь трубы некоторого входа (как в стандартном вводе, а не аргумент командной строки) из файла в подвешенном процесс на Linux машине, например,труба входа подвешенного процесс

cat file > fg 

Однако я не могу найти правильную команду для этого. До сих пор я пытался

file > fg 
file | fg 
file - | fg 
fg < file 
fg < cat file 

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

В качестве альтернативы, я мог бы также транслировать входные данные с помощью python -c print, но у меня также не было успеха в этом.

ответ

2

Я считаю, что это невозможно. К моменту приостановки процесса он уже имеет свои stdin, stdout и stderr дескрипторы файлов. Для того, что вам нужно, bash потребуется какой-то способ принудительного закрытия stdin приостановленного процесса, а затем повторного открытия его с помощью нового входа fd. Я был бы очень удивлен, если бы был какой-то способ сделать это, не связанный с каким-то очень сложным кодом (например, создание потока внутри приостановленного процесса, приостановка основного потока, использование нового потока для закрытия и повторного открытия stdin файловый дескриптор). Я бы не ожидал, что такой процесс завершится должным образом с любой регулярностью.

Но, возможно, я также ошибаюсь.

 Смежные вопросы

  • Нет связанных вопросов^_^