我有一个使用nohup program &
. 该程序接受来自 的输入STDIN
。有没有办法将文本发送到STDIN
正在运行的程序的nohup
?
这是在运行 bash 的 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
Run Code Online (Sandbox Code Playgroud)
(实际上,可以通过使用ptrace
,即调试器或其他黑客将程序的标准输入重新连接到另一个源。如果它跟踪其输入的来源,这可能会使程序崩溃。请参阅如何暂停正在运行的程序通过 ssh 处理,否认它,将其关联到新的屏幕外壳并取消暂停?;SE 网络上还有关于此主题的其他问题。)