java - 如何通过java读取linux后台进程流?

标签 java linux streaming

在我的 linux 机器上,我有一个进程在后台运行。我有这个进程的进程 ID。我想通过 java 读取这个进程的流输出。 命令:

nohup sar -A 1 >/dev/null 2>&1 &

我将输出重定向到/dev/null 即不会创建 nohup.out。

最佳答案

您不能使用 nohup 并拥有输出流。

来自 nohup --help :

If standard output is a terminal, append output to 'nohup.out' if possible, '$HOME/nohup.out' otherwise.

因此,要么放弃使用 nohup 并使用 Process 的 outputStream,要么必须从文件中读取。

显然,在这两种情况下,您还必须停止将命令的输出重定向到 /dev/null,但您可以将其重定向到您选择的文件或让 nohup 使用它的默认输出文件。

关于java - 如何通过java读取linux后台进程流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38074772/

相关文章:

java - 如何几乎同时在两台设备上执行代码?

java - 在 webapp 之间共享对象时出现 ClassCastError

java - 迭代同步包装器是否安全?

arrays - BASH - 将文件内容推送到数组中 100000 行/更多行

exception - 从 azure blob 下载时,我得到 "Unable to read data from the transport connection: The connection was closed."

java - 使用 openapi 和 openapi-generator-maven-plugin 的 requestbody 中的多个文件

linux - Maven 复制文件和文件夹插件不复制 linux [dot] ".*"隐藏文件

linux - 根据文件名模式将多个文件 move 到多个目录,同时排除某些文件

node.js - 这是在接收到node.js音频流数据时的数据日志

ffmpeg IP 摄像机无法录制