0

我有这个基于 Windows 的版本,它可以在多个线程中打开我当前的任务。虽然,它打开了多个线程但还可以接受。我想把它移植到 Linux 上?我对Linux的了解有限,因此希望有人在这里提供帮助。

清洁.bat

ant -DCorrelator.port="15800" clean

* start_parallel.bat*

call clean.bat
start "Engine 1500" ant -Dengine.port="15800" -Dfamily.one="true" -Dfamily.two="false" start
start "Engine 1505" ant -Dengine.port="15805" -Dfamily.one="false" -Dfamily.two="true" start
4

2 回答 2

0

我不得不承认,我不确定我是否完全理解您的场景,但是要在 linux 中并行运行任务,您可以使用&.

例子:

start "Engine 1500" ant start &
start "Engine 1505" ant start &

要调用您的其他脚本,只需从您的第一个 shell 脚本执行它。

因此,总的来说,您将拥有:

clean.sh:

#!/bin/sh
ant -DCorrelator clean

start_parallel.sh

#!/bin/sh
clean.sh
start "Engine 1500" ant -Dengine.port="15800" -Dfamily.one="true" -Dfamily.two="false" start &
start "Engine 1505" ant -Dengine.port="15800" -Dfamily.one="false" -Dfamily.two="true" start &

确保使用以下命令使两个脚本都可执行chmod

chmod +x clean.sh
chmod +x start_parallel.sh

Linux 仅在您的路径 ( echo $PATH) 中查找可执行脚本。如果你想在不同的目录中执行脚本,你必须至少给出它的相对路径。如果脚本在您的当前目录中,请执行以下操作:

./start_parallel.sh

而且您还必须clean.sh./clean.sh在脚本中那样调用。为避免这种情况,我建议您通常将脚本放入路径中的目录中,/usr/local/bin/或者在您的主​​目录中创建一个目录并使用.profile`bin将其添加到您的路径中。for example

干杯。

于 2013-09-01T17:27:04.073 回答
0

干净的.sh

#!/bin/bash
# Note: The header above is only necessary if you intend to call the script as standalone as well.
ant -DCorrelator.port="15800" clean

start_parallel.sh

#!/bin/bash
source ./clean.sh
konsole -p tabtitle="Engine 1500" -e ant -Dengine.port="15800" -Dfamily.one="true" -Dfamily.two="false" start
konsole -p tabtitle="Engine 1505" -e ant -Dengine.port="15805" -Dfamily.one="false" -Dfamily.two="true" start

它适用于konsole但我会尝试使用其他终端进行更新。

运行bash start_parallel.sh

XTerm 更新

...
xterm -T "Engine 1500" -e ant -Dengine.port="15800" -Dfamily.one="true" -Dfamily.two="false" start &
xterm -T "Engine 1505" -e ant -Dengine.port="15805" -Dfamily.one="false" -Dfamily.two="true" start &
于 2013-09-01T17:29:31.023 回答