elb*_*rna 11 background-process output
假设这种情况
wget http://file
Run Code Online (Sandbox Code Playgroud)
wget 开始下载文件。
我把它放在了后台。
^Z
bg
Run Code Online (Sandbox Code Playgroud)
该命令进入后台。
但它的输出仍然在控制台上——如果控制台仍然打开。
是否可以停止命令的输出?
wget 只是一个例子;考虑一个写入大量输出的命令。
在控制台上,我知道可以执行bg然后关闭终端并打开另一个终端,但是如果我只有一个终端可用并且没有伪终端怎么办?
您的意思是您想让 wget(或其他一些 cmd)在后台运行而不向控制台输出消息吗?如果这是这个问题,你可以尝试redirection
$ wget http://file > /dev/null
Run Code Online (Sandbox Code Playgroud)
上面的 cmd 将重定向到stdout,/dev/null除了错误消息之外,您不会看到任何消息。如果您也不想看到错误消息,请尝试此操作
$ wget http://file 1>/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
你可以googleredirection一下更详细的信息。
这是一个在命令运行时实际重定向命令输出的解决方案: https://superuser.com/questions/732503/redirect-stdout-stderr-of-a-background-job-from-console-to-a-日志档案
对于在使用终端的日常场景中更有用的解决方案,您可以
在后台wget -o log http://file &
运行并将其输出写入而不是您的终端。当然,在这种情况下,您根本不会看到任何输出(即使您在前台运行),但您可以随着输出的增长来查看输出。wgetlogwgettail -f log