Skip to content

$exec.start

Description

Démarre un process sur le host. Pour des raisons de sécurité, il n'est pas possible de spécifier explicitement la commande à démarrer sur le host. Les commandes autorisées doivent être déclarées dans le fichier de configuration de l'application.

Syntaxe

$exec.start( commandName [ , args [ , options ] ] )

Paramètres

commandName string
Nom de la commande à lancer sur le host. La valeur doit être déclarée en tant que commande au niveau du fichier de configuration de l'application.
commandName array
Arguments de la commande. Les arguments sont validés par l'éventuelle regex déclarée au niveau des propriétés <command-argument-#> du fichier de configuration de l'application.
options map

Options à passer à la méthode. Les options reconnues sont:

directory file / string
Dossier à partir duquel exécuter la commande
maxTTL number
Durée de vie maximum du process, en millisecondes. Si défini et > 0, le process sera détruit s'il s'exécute au-delà du TTL imparti.
inheritIO boolean
Valeur true/false indiquant si les entrées/sorties peuvent être redirigées sur les logs. Voir ProcessBuilder#inheritIO
redirectErrorStream boolean
Valeur true/false indiquant si le flux de sortie pour les erreurs peut être renvoyer sur le flux de sortie standard. Cela permet d'avoir les sorties et les erreurs dans un même flux. Voir ProcessBuilder#redirectErrorStream
onOutput function
Fonction de callback à invoquer lorsque des données sont générées par le process sur la sortie standard. La fonction de callback doit avoir la forme suivante: function(data, target)data sera alimenté avec les données reçues et target est un objet pojo référençant le process lui-même.
onError function
Fonction de callback pour les erreurs. La fonction de callback doit avoir la même forme que pour onOutput
getOutput function

Flag true/false indiquant que l'on souhaite recevoir en retour de méthode non pas le process créé, mais l'output qu'il a généré. Cette option est sans effet si onOutput est déclaré.

L'exécution du process devient alors synchrone puisque'on attend la fin de son exécution pour obtenir le résultat.

environment map
Map de variables d'environnement à mettre en place pour l'exécution du process. Par exemple on peut définir les conditions pour démarrer un process sur X11 en définissant l'environnement { "DISPLAY": ":0" }.

Retour

Retourne un objet pojo référençant le processus démarré sur le host, ou valeur string contenant le retour du process lorsque l'option getOutput est activée.

Exemple

1
2
3
4
5
6
var proc = $exec.start("expect",
                       [ "/opt/ewt/vpnmanager/startVPN.exp",
                         $app.getConfig("custom.vpnConnectionName"),
                         $app.getConfig("custom.vpnUsername"),
                         vpnpass ],
                       { inheritIO: true });
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$exec.start("rdesktop",
            [
              "-uuser",
              "-kfr-ch",
              "-z",
              $app.getConfig("custom.rdp[${name}]")
            ],
            {
              inheritIO: true,
              environment: { "DISPLAY": ":0" }
            });