Processus zombie avec LANCER PROCESS EXTERNE

Bonjour, j’essaye depuis quelques jours de faire un système de dump postgre automatisé et d’avoir une estimation de l’avancée de celui-ci.

J’ai commencé par faire ma commande à executer dans LANCER PROCESS EXTERNE et qui fonctionne parfaitement en ligne de commande et via la fonction.

pg_dump -h localhost -p 5432 -U sauvegarde -F c -b -v -f "Cheminfichier" fusion_b0532_origin

J’execute cette commande avec

FIXER VARIABLE ENVIRONNEMENT("_4D_OPTION_BLOCKING_EXTERNAL_PROCESS";"false")

Pour permettre l’usage de l’application même en cours de sauvegarde.

Pour pouvoir lire l’avancée de la commande, j’ai décidé de déplacer la sortie stderr (celle qui affiche l’avancée de la fonction) dans un fichier pour pouvoir lire celui-ci dans la foulée.

pg_dump -h localhost -p 5432 -U sauvegarde -F c -b -v -f "Cheminfichier" fusion_b0532_origin 2>CheminSortieErr

Cette commande là fonctionne parfaitement en ligne de commande, mais si je l’execute via 4D cela me créé juste un processus zombie sans rien faire d’autre.

Auriez-vous une idée de la raison pour laquelle ça fait ça ?
La fonction LANCER PROCESS EXTERNE limite-t-elle la redirection des sorties ?

Je vous remercie

Je suggère d’appeler la console depuis Launch External Process.

Voir l’exemple 10 de la doc

Je viens de voir dans la documentation qu’il est impossible de faire des indirections, ça veut donc dire qu’il n’est pas possible de sortir les stdout et stderr dans des fichiers ?

J’ai besoin que le système fonctionne sur MacOS et sur Windows du coup l’exemple 10 ne fonctionnerait que sur Windows.

EDIT : En lançant un “/bin/sh” et en mettant la commande en tant qu’entrée du process cela marche parfaitement.

LANCER PROCESS EXTERNE ("/bin/sh";$commande;$stdout;$stderr;$pid)

Merci du coup