【发布时间】:2021-02-16 15:39:29
【问题描述】:
目前,我正在编写一个脚本来自动化数据收集器流程。通过长期运行,我将这些收集器脚本分成四部分。现在我想同时启动这些 Collectorscripts,但我不知道该怎么做。我的代码有点工作:
package require Expect
log_user 0
set timeout 10200
spawn ./Log.tcl 2 5 1; set spawn1 $spawn_id
spawn ./Log.tcl 3 4 2; set spawn2 $spawn_id
spawn ./Log.tcl 7 8 2; set spawn3 $spawn_id
spawn ./Log.tcl 6 9 3; set spawn4 $spawn_id
expect -i $spawn1 eof {wait ; puts "--- 2,5 fertig ---"}
expect -i $spawn2 eof {wait ; puts "--- 3,4 fertig ---"}
expect -i $spawn3 eof {wait ; puts "--- 7,8 fertig ---"}
expect -i $spawn4 eof {puts "--- 6,9 fertig ---"}
这是运行并制作的东西。但是,如果一项工作在另一项之前准备好,它将产生僵尸。有没有可能让这变得简单而美丽?我用 exp_after、exp_background、$any_spawn_id 和 while 循环尝试了一些想法。但没有任何效果。期望永远不会得到 eof。
【问题讨论】: