在qnx中 为什么执行 top -d 60 > top.log & 终端输出[11] + Stopped (tty output) top -d 60 > top.log 但是执行top -d 60 > top.log 就可以正常输出到文件中
时间: 2024-03-18 10:41:04 浏览: 113
bsp-PHYTEC-i.MX6_Installation+UserGuide_15May2020.pdf
在 QNX 操作系统中,执行 `top -d 60 > top.log &` 命令会将 `top -d 60` 命令放到后台运行,并将标准输出重定向到 `top.log` 文件中。但是,由于 QNX 系统的终端输出流控制机制,如果程序试图在终端上输出内容,会被阻塞导致出现 `[11] + Stopped (tty output) top -d 60 > top.log` 的信息。
而执行 `top -d 60 > top.log` 命令时,该命令会在当前终端中直接运行,并将标准输出重定向到 `top.log` 文件中,因此不会触发 QNX 系统的终端输出流控制机制。
如果您想要解决 `top -d 60 > top.log &` 命令在 QNX 系统中的输出问题,可以使用 `nohup` 命令和子shell的方式来执行命令,例如:
```
nohup sh -c 'top -d 60 > top.log' >/dev/null 2>&1 &
```
这样,终端就不会输出 `[11] + Stopped (tty output) top -d 60 > top.log` 的信息了,同时也能够将 `top -d 60` 放到后台运行,避免被终端的控制机制终止。`nohup` 命令还可以在程序退出后继续运行,避免被终端的控制机制所终止。
另外,如果需要将程序停止,可以使用 `kill` 命令将其进程号杀掉,例如:
```
kill <pid>
```
其中,`<pid>` 是程序的进程号。希望这个解决方法能够帮到您!
阅读全文