2015-09-21 1 views
0

J'ai exécuté des commandes wine/dos en parallèle dans ubuntu avec gnu-parallel. Je peux et ai fait cela avec succès avec des commandes simples sans problème. Toutefois, certains problèmes plus complexes peuvent entraîner des interférences entre les composants du vin. Donc, pour résoudre ce problème, je voudrais restreindre un travail à la fois à une instance nommée "préfixe de vin" en utilisant le {%} comme demandé dans this question. Le problème est le suivant: le substitut {%} ne semble pas fonctionner.Exécution de wine en parallèle avec gnu-parallel - nécessite la substitution de fente {%}

Je finirais voudrais être en mesure d'exécuter quelque chose comme

parallel -j4 'WINEPREFIX=$HOME/slot{%} wine cmd /c @echo {%} 2>/dev/null' ::: A B C D 

Malheureusement un nouveau créneau de préfixe de vin {%} est créé et utilisé plutôt que le slot1 existant, slot2, SLOT3 et répertoires de préfixe slot4.

Après le manuel que j'ai essayé:

parallel -j 2 echo {%} ::: A B C 

mais au lieu de retourner quelque chose comme:

1 
2 
1 

il retourne:

{%} A 
{%} B 
{%} C 

Je ne pense pas que le problème est du vin, mais quelque chose d'autre: la substitution {%} doit-elle être activée d'une manière ou d'une autre? Peut-être pas disponible dans ma version? Peut-être que j'ai copié l'utilisation de l'exemple de façon incorrecte? Je ne peux trouver aucun autre exemple de ce problème, mais cela m'arrive à chaque fois. En tant que solution de contournement faible, j'ai appliqué l'opérateur modh bash à la substitution de jobs {#}, mais ce n'est pas parfait car j'obtiens toujours des collisions de slot-slot occasionnelles et des plantages subsahariens.

FYI1: lsb_release -a retours

Distributor ID: Ubuntu 
Description: Ubuntu 14.04.3 LTS 
Release:  14.04 
Codename:  trusty 

parallel --version retours

GNU parallel 20130922 

Répondre

2

Votre version de parallel semble être trop vieux.

Voyez-vous {%} dans la documentation livrée avec votre version ou simplement en ligne?

Les notes de version pour GNU Parallel 20140522 indiquent:

  • {%} introduit sous forme de chaîne de remplacement de l'emplacement de travail. Il a connu des bugs.

et les notes de publication pour indiquer GNU Parallel 20140622:

  • {%} fonctionne comme emplacement de travail.
+0

Oui la version dans le repo fidèle est trop vieux –