qnx中我想把top -d 10的内容输出到/dev/slog2/stdout和/dev/slog2/stderr中
时间: 2023-07-19 14:37:05 浏览: 409
可以使用以下命令将 `top -d 10` 的输出同时输出到 `/dev/slog2/stdout` 和 `/dev/slog2/stderr` 中:
```
top -d 10 2>&1 | slog2info -t0 -d0 -s0 -c0 -i |
tee /dev/slog2/stdout /dev/slog2/stderr >/dev/null
```
其中,
- `2>&1` 表示将标准错误输出重定向到标准输出;
- `tee` 命令可以将标准输入的内容同时输出到多个文件或设备中;
- `/dev/null` 表示将 `tee` 命令的标准输出重定向到空设备,避免重复输出。
这样,`top -d 10` 的输出就会同时输出到 `/dev/slog2/stdout` 和 `/dev/slog2/stderr` 中。希望这个解决方法能够帮到您!
相关问题
在qnx系统中,执行top -d 10 -n 1 > /dev/slog2/stdout 2> /dev/slog2/stderr &在终端显示[12] + Stopped (tty output) top -d 10 -n 1 > /dev/slog2/stdout 2> /dev/slog
2/stderr &的含义是什么?
这是一个在QNX系统中使用的命令,用于将top命令的结果输出到系统日志中。其中:
- top是一个系统监控工具,用于查看进程的占用情况。
- -d 10选项表示每隔10秒刷新一次显示。
- -n 1选项表示只显示一次。
- > /dev/slog2/stdout表示将命令的标准输出重定向到/dev/slog2/stdout文件,即将命令输出写入系统日志中的标准输出流。
- 2> /dev/slog2/stderr表示将命令的标准错误输出重定向到/dev/slog2/stderr文件,即将命令输出写入系统日志中的标准错误流。
- &符号表示将命令放到后台执行,以便终端继续输入其他命令。
终端显示的信息表示命令已经被停止,可能是由于终端输出被阻塞了。
使用nohup top -d 10 > /dev/slog2/stdout 2> /dev/slog2/stderr &终端输出top -d 10 > /dev/slog2/stdout 2> /dev/slog2/stderr &为什么
在 QNX 系统中,使用 `nohup top -d 10 > /dev/slog2/stdout 2> /dev/slog2/stderr &` 命令时,终端会输出 `top -d 10 > /dev/slog2/stdout 2> /dev/slog2/stderr &` 的信息,这是因为命令解释器在解析命令时,会先将 `>` 和 `2>` 等符号进行重定向操作,将标准输出和标准错误输出重定向到指定的文件中,然后再执行 `top -d 10` 命令。
因此,终端会先输出重定向的命令,再执行 `top -d 10` 命令。为了避免这种情况,可以使用 `nohup` 命令和子shell的方式来执行命令,例如:
```
nohup sh -c 'top -d 10 > /dev/slog2/stdout 2> /dev/slog2/stderr' >/dev/null 2>&1 &
```
这样,终端就不会输出 `top -d 10 > /dev/slog2/stdout 2> /dev/slog2/stderr &` 的信息了,同时也能够将 `top -d 10` 放到后台运行,避免被终端的控制机制终止。希望这个解决方法能够帮到您!
阅读全文