如何使读取stdin的程序在linux上后台运行?

如何使读取stdin的程序在linux上后台运行?,linux,shell,Linux,Shell,我有一个程序在while循环中读取标准输入。我需要在后台运行它,即使在我关闭控制台之后。如果程序名为prog,我该怎么做?您必须提供从键盘以外的源重定向的stdin(注销时会消失),但是 nohup progoutputfile 2>errorlogfile 应该这样做。您必须提供从键盘以外的源重定向的stdin(在您注销时会消失),但是 nohup progoutputfile 2>errorlogfile 应该可以做到这一点。当我在24年前开始使用UNIX时,我也有同样的问题 如果您是新

我有一个程序在
while
循环中读取标准输入。我需要在后台运行它,即使在我关闭控制台之后。如果程序名为
prog
,我该怎么做?

您必须提供从键盘以外的源重定向的stdin(注销时会消失),但是

nohup progoutputfile 2>errorlogfile

应该这样做。

您必须提供从键盘以外的源重定向的stdin(在您注销时会消失),但是

nohup progoutputfile 2>errorlogfile

应该可以做到这一点。

当我在24年前开始使用UNIX时,我也有同样的问题

如果您是新手,那么您需要的是
tmux
:在这里,您可以启动一个程序,从STDIN读取数据,注销,稍后再登录,然后继续


否则,
nohup
就是正确的答案。

当我在24年前开始使用UNIX时,我也遇到了同样的问题

如果您是新手,那么您需要的是
tmux
:在这里,您可以启动一个程序,从STDIN读取数据,注销,稍后再登录,然后继续


否则,
nohup
就是正确答案。

您可能正在寻找
屏幕

$ screen
$ prog < inputfile
# CTRL-A, CTRL-D to detach from the screen tty
# Log out or close console; log back in, or start another console later. 
# To re-attach to the screen tty:
$ screen -r
$screen
$prog<输入文件
#CTRL-A、CTRL-D以从屏幕tty分离
#注销或关闭控制台;重新登录,或稍后启动另一个控制台。
#要重新连接到屏幕tty,请执行以下操作:
$screen-r

您可能正在查找
屏幕

$ screen
$ prog < inputfile
# CTRL-A, CTRL-D to detach from the screen tty
# Log out or close console; log back in, or start another console later. 
# To re-attach to the screen tty:
$ screen -r
$screen
$prog<输入文件
#CTRL-A、CTRL-D以从屏幕tty分离
#注销或关闭控制台;重新登录,或稍后启动另一个控制台。
#要重新连接到屏幕tty,请执行以下操作:
$screen-r

如果我键入命令echo-e“\004”|/prog&,在我关闭控制台后,进程结束。如果您关闭控制台,它可能会重复,它如何从stdin读取?您的
stdin
是什么?一辆出租车?你为什么这么问?请编辑您的问题,以激励it将进程后台化,并使其与启动它的控制台/终端分离运行:
$bg%1;断开%1的连接
。(或您的程序具有的任何PID。)如果我键入命令echo-e“\004”|./prog&,在我关闭控制台后,进程结束。如果您关闭控制台,它可能会重复。它如何从stdin读取?您的
stdin
是什么?一辆出租车?你为什么这么问?请编辑您的问题,以激励it将进程后台化,并使其与启动它的控制台/终端分离运行:
$bg%1;断开%1的连接
。(或者你的程序有什么PID。)
tmux
对我来说是新的,但它看起来非常有用。我想我还有更多的阅读要做。
tmux
对我来说是新的,但它看起来非常有用。我想我还有一些书要读。