Передайте команду по каналу/отправьте для обработки работы nohup, который принимает вход от STDIN

У меня есть программа, что я выполняю использование nohup program &. Эта программа принимает вход от STDIN. Есть ли любой способ отправить текст в STDIN из программы, которая работает через nohup?

Это находится на FreeBSD, выполняющем удар. Я хотел бы видеть, как это сделано на Linux также.

4
задан 21.12.2010, 20:54

1 ответ

nohup запускает программу со стандартным входом, перенаправленным от /dev/null (предполагающий, что Вы не перенаправили nohup сама команда). Так не, Вы не можете отправить вход в эту программу.

Если Вы хотите отправить вход в программу, перенаправить вход при запуске его:

nohup program <input-file.txt &  # input from a file
nohup data-producer | nohup program &  # input from another program
mkfifo program.pipe; nohup program <program.pipe &  # input from a named pipe, feed it what you want later

(На самом деле может быть возможно повторно подключить стандартный вход программы к другому источнику, при помощи ptrace, т.е. отладчик или другой взлом. Это могло разрушить программу, если она отслеживает, откуда ее вход. Посмотрите, Как я могу приостановить рабочий процесс по ssh, отрицать его, связать его к новой экранной оболочке и не приостановить его?; существуют другие вопросы в сети SE по этой теме.)

7
ответ дан 07.12.2019, 19:56

Теги

Похожие вопросы