在qnx中 为什么执行 top -d 60 > top.log & 终端输出[11] + Stopped (tty output) top -d 60 > top.log 但是执行top -d 60 > top.log 就可以正常输出到文件中
时间: 2024-03-18 16:41:04 浏览: 118
在 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>` 是程序的进程号。希望这个解决方法能够帮到您!
相关问题
在qnx中 为什么执行 top -d 60 > top.log & 终端输出[11] + Stopped (tty output) top -d 60 > top.log
在 QNX 操作系统中,执行 `top -d 60 > top.log &` 命令会将 `top -d 60` 命令放到后台运行,并将标准输出重定向到 `top.log` 文件中。但是,由于 QNX 系统的终端输出流控制机制,如果程序试图在终端上输出内容,会被阻塞导致出现 `[11] + Stopped (tty output) top -d 60 > top.log` 的信息。
如果您想要解决这个问题,可以使用 `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>` 是程序的进程号。希望这个解决方法能够帮到您!
在qnx中 执行top -d 10 -n 10 > top.log & 返回[8] + Stopped (tty output) top -d 10 -n 10 > top.log
这是因为在QNX中,执行命令时默认会在终端上输出结果,而你在命令结尾处使用了 "> top.log" 来将结果输出到文件中,这会导致 QNX 操作系统无法将结果输出到终端上。因此,你需要将命令放到后台执行,可以使用 "&" 符号来实现,即 "top -d 10 -n 10 > top.log &"。但是,由于你使用了 "> top.log" 来将结果重定向到文件中,因此 QNX 操作系统会认为你希望将结果输出到终端上,这会导致命令无法成功放到后台执行。为了解决这个问题,你可以将命令修改为 "top -d 10 -n 10 > top.log 2>&1 &",这样就可以将结果输出到文件中,并且成功将命令放到后台执行。
阅读全文