У меня есть программа, что я выполняю использование nohup program &
. Эта программа принимает вход от STDIN
. Есть ли любой способ отправить текст в STDIN
из программы, которая работает через nohup
?
Это находится на FreeBSD, выполняющем удар. Я хотел бы видеть, как это сделано на Linux также.
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 по этой теме.)