Je suis en train de commencer à distance de package NodeJS TeamCity PowerShell construire étape.processus de démarrage dans PowerShell, déshydrater ses données et détacher de ce
Actuellement, une partie qui démarre le processus ressemble à ceci:
$npm = "C:\Program Files\nodejs\node.exe"
$params = $pathToStart
$proc = Start-Process -FilePath $npm -ArgumentList $params -Passthru
$proc | Export-Clixml -Path $fullProcessHandlePath
$ pathToStart détient en effet chemin vers le point d'entrée de mon colis. Lorsque je l'exécute avec -Wait, provoquant effectivement mon script PS à ne jamais finir, je peux voir que le paquet de noeud est démarré et s'exécute correctement. Toutefois, si je laisse le script s'exécuter au point de
$proc | Export-Clixml -Path $fullProcessHandlePath
et de quitter, mon processus de nœud se termine également.
Je dois appeler l'Export-Clixml pour enregistrer les processus nouvellement créés poignée d'information pour que je puisse plus tard de le détruire d'un autre script.
Comment puis-je conserver Export-Clixml, mais détacher du script ps et de laisser le travail sur node.exe?
Merci. Le seul problème est que Start-Job me dit que je devrais spécifier un autre script ps1 est une valeur pour -FilePath. Si je le fais via un bloc de code, je finis par appeler Start-Process. –
J'ai passé une heure à essayer d'exécuter node à partir de $ scriptBlock qui est démarré via Start-Job et agit comme une boîte noire. Je cours, passe des params et rien. Lorsque je contrôle les processus fractionnés par l'utilisateur PowerShell qui appelle Invoke-Command pour exécuter tout cela sur une machine, je vois que cela crée un processus de Powershell, deux autres conhost et quelque chose d'autre, mais jamais essaye même de courir node.exe. Je soupçonne que le code de mon bloc de script ne s'exécute jamais. –
Voici une erreur exacte avec votre exemple: La valeur du paramètre FilePath doit être un fichier de script Windows PowerShell. Entrez le chemin d'accès à un fichier avec une extension de nom de fichier .ps1 et réessayez la commande. –