0

TeamCity PowerShell ビルドステップからリモートで NodeJS パッケージを開始しようとしています。

現在、プロセスを開始する部分は次のようになります。

$npm = "C:\Program Files\nodejs\node.exe"
$params = $pathToStart

$proc = Start-Process -FilePath $npm -ArgumentList $params -Passthru
$proc | Export-Clixml -Path $fullProcessHandlePath

$pathToStart は確かに、パッケージのエントリ ポイントへのパスを保持しています。-Wait を指定して実行すると、実質的に PS スクリプトが終了しなくなりますが、ノード パッケージが開始され、正しく実行されていることがわかります。ただし、スクリプトを次の時点まで実行すると、

$proc | Export-Clixml -Path $fullProcessHandlePath

そして終了すると、ノードプロセスも終了します。

Export-Clixml を呼び出して、新しく作成されたプロセス ハンドル情報を保存し、後で別のスクリプトから破棄できるようにする必要があります。

Export-Clixml を保持したまま、ps スクリプトから切り離して node.exe を動作させるにはどうすればよいですか?

4

2 に答える 2

0

コマンド実行から PowerShell コンソールを切り離すことができるため、Start-Process ではなく Start-Job コマンドレットを使用することをお勧めします。

$npm = "C:\Program Files\nodejs\node.exe"
$params = $pathToStart

Start-Job -FilePath $npm -ArgumentList $params

プロセス情報の取得に関しては、時間でソートして最新のノード プロセスを取得するのが最善の方法です。

Get-Process notepad | Sort-Object starttime | Select-Object -Last 1 | Export-Clixml -Path $fullProcessHandlePath
于 2015-08-14T22:28:23.470 に答える