如何让一个读取标准输入的程序在Linux中后台运行?

32 浏览
0 Comments

如何让一个读取标准输入的程序在Linux中后台运行?

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

0
0 Comments

当我24年前开始接触UNIX时,我也有同样的问题。

如果你是一个新手,那么你需要的是tmux:在这里,你可以启动一个从STDIN读取的程序,退出,过一段时间后重新登录,然后继续运行。

否则,nohup是正确的答案。

tmux对我来说是一个新东西,但看起来非常有用。我想我还需要更多的阅读。

0
0 Comments

在Linux上,如果想要使一个程序在后台运行并读取标准输入(stdin),需要解决两个问题。首先,需要提供来自键盘以外的其他来源的标准输入,因为当用户注销时,键盘将不可用。其次,需要确保程序在后台运行。

为了解决这个问题,可以使用以下命令:

nohup prog < inputfile > outputfile 2> errorlogfile

其中,"prog"是要运行的程序的名称。这个命令将"inputfile"文件中的内容作为标准输入,并将程序的输出重定向到"outputfile"文件中。同时,任何错误信息将被重定向到"errorlogfile"文件中。

通过使用这个命令,可以确保程序在后台运行,并且可以从文件中读取标准输入,而不受键盘可用性的限制。这对于需要长时间运行的程序或需要在用户注销后继续运行的程序特别有用。

0
0 Comments

你可能正在寻找使用screen命令解决该问题:

$ screen
$ prog < inputfile
# 按下CTRL-A, CTRL-D从screen tty中分离
# 退出或关闭控制台;重新登录或稍后启动另一个控制台。
# 要重新连接到screen tty:
$ screen -r

在Linux系统上,有时我们需要在后台运行一个从stdin读取输入的程序。这种情况下,我们可以使用screen命令来解决这个问题。

screen是一个终端多路复用程序,它允许我们在一个终端窗口中运行多个终端会话。通过使用screen,我们可以在后台运行一个程序并将其与终端会话分离,然后稍后重新连接到该会话。

要在后台运行一个从stdin读取输入的程序,我们可以按照以下步骤操作:

1. 打开一个终端窗口并输入`screen`命令。

2. 输入要运行的程序命令,例如`prog < inputfile`,其中`inputfile`是要读取的输入文件。

3. 按下CTRL-A,然后按下CTRL-D。这将分离当前的screen tty,并将程序转到后台运行。

4. 可以退出或关闭当前终端窗口,然后稍后重新登录系统或打开另一个终端窗口。

5. 要重新连接到之前分离的screen tty,可以使用命令`screen -r`。

通过以上步骤,我们可以在后台运行一个从stdin读取输入的程序,并且可以随时重新连接到该程序的终端会话。这样我们就可以在程序运行的同时进行其他操作,而不会中断程序的执行。

希望这个解决方法对你有帮助!

0