2016-08-31 33 views
0

我有2管道过程:2管道过程放缓执行

gnome-terminal -e ./script1 | ./script2.py 

,我使用的“实时”进程(通过我的串口script2.py控制电机)...这工作很好,但在很短的时间后,它放缓很多...

有什么办法来“刷新”或跳过一些数据从管道传递,以保持我的“实时”尽可能短? (并让我的电机尽可能快地反应来自我脚本的任何变化1)

非常感谢!

+0

为什么gnome-terminal甚至是这个的一部分? – Nick

+0

它只是为了能够在这个终端打印一些输出,并监视发生了什么...... – Dadep

回答

1

我觉得你很困惑。上述命令将启动一个新的实例gnome-terminal并在其中运行./script1,并且它还将在原始终端内运行./script2.py。此外,./script2.py的标准输入将被输入从gnome-terminal -e ./script1命令的输出收集的所有数据,而不是./script1。所以你给了./script2.py错误的数据。实际上,gnome-terminal通常不会产生任何输出(实际上,它可能会在其stderr中打印一些内容),所以您没有给出./script2.py的任何数据。

+0

嗨,感谢您的回答,但我不太明白,所以从script2.py中收到的数据来自哪里?如果我只是做./script1 | ./script2.py,它会工作?谢谢 ! – Dadep

+0

是的,'./script1 | 。/ script2.py'会导致'。/ script1'的输出被输入到'。/ script2.py'中作为输入。 – redneb

+0

如果我有script.sh然后做gnome-terminal ./script.sh,并且在这个script.sh中,我该怎么做@#/ bin/bash cd/home/therightplace; ./script1 | ./script2.py} || {通知发送“不工作”} – Dadep