問題タブ [start-job]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - リモート サーバーで既存のスクリプトを実行し、出力をローカル ファイルにキャプチャしようとしています。
これを複数のサーバー(ほぼ40〜50台のサーバー)で並行して実行したい
$Username = "ユーザー"
このコードは、start-job を削除すると正常に動作しますが、次々と実行されるため、多くの時間がかかります。
PSsessionやinvoke-commandは当方の環境で制限されているため使えません。
このコードは決して終了しません。次の位置で停止します。
multithreading - Powershell のマルチスレッド
私のスクリプトは次のことを行います:
- パケットキャプチャ (windump を使用) のプロセスを 1 時間実行すると、データが保存されます textFile1
- 1 時間後にデータをデータベースにダンプする
- テキストファイルを削除
- 別の windump を実行し、データを textfile2 に保存します (その後、テキストファイルを交互に繰り返しながらプロセスを繰り返します)。
問題は、データをデータベースにダンプするのに時間がかかることです。したがって、パケット キャプチャ プロセスは、数時間後にのみ再度実行されます。Start-Job が ScriptBlock として関数を受け入れないため、マルチスレッドを機能させることができません。アイデアは、パケット キャプチャ プロセスが継続的に実行される必要があるということです。(そして、バックグラウンドでデータベースへのダンプを持っている可能性があります。そのため、2 つのテキスト ファイルを交互に使用しています)
私はすでに ParseDumpDB 全体を $Scriptblock に入れようとしましたが、まだ機能していません。
スクリプト (一部削除):
powershell - Start-Job 内の「Start-Process -NoNewWindow」?
Start-Job 内で Start-Process を使用する際、特に-NoNewWindow
. たとえば、このテスト コードは次のとおりです。
次のエラーが返されますが、これは明らかに Google が聞いたことのないものです。
Receive-Job : バックグラウンド プロセスからのデータ処理中にエラーが発生しました。報告されたエラー: ノード タイプが「テキスト」の要素を処理できません。Element および EndElement ノード タイプのみがサポートされています。
すべてを削除すると、-NoNewWindow
問題なく動作します。私はばかげたことをしていますか、それとも を含むジョブを開始する方法はありませんStart-Process -NoNewWindow
か? 良い代替案はありますか?
powershell - NULL パラメーターになる開始ジョブ
PowerShell v2.0 で次の 2 行のコードをジョブとして実行しようとしていますが、問題が発生しています。私は正しい構文を持っていると思いますが、それがすべきだと思うことをすることができないので、明らかに何か間違ったことをしています...
これらの 2 行は PowerShell で機能します。しかし、それをstart-jobコマンドに入れようとすると:
次のエラーが表示されます。
このエラーは、invoke-expression を渡す引数が null であると言っていると理解していますが$report
、-argumentlist
param を渡すことで、それが通り抜けると思っていましたか?
arrays - PowerShell - 展開された引数を Start-Job コマンドレットに渡す
変数を含む配列を作成し、この配列を展開してスクリプトに渡し、Start-Job によって実行しようとしています。しかし、実際には失敗し、その理由を見つけることができません。誰か助けてくれるかも!?
で失敗します
$config.name が正しく設定されていても。
何か案は?
前もって感謝します!
powershell - Scriptblock は Invoke-Command として機能しますが、Start-Job としては機能しません
ファイルのアップロードをカスタム http サーバーに POST し、応答をディスクに保存する ScriptBlock を作成しました。上記のサーバーをテストするために使用することを目的としており、正しい応答を確認することに加えて、サーバーをロードするために並行して実行したいと考えています。
ScriptBlock のコードは、別の ps1 スクリプトとしてビルドされ、動作します。Start-Job
次に、ジョブを管理し、最終的に全体的な結果を提示するために使用するフレームワーク スクリプトに移植しました。
残念ながら、その移植後は機能しません。
症状はStart-Job
、ジョブの使用が終了しないことです。テストのために、に切り替えましたInvoke-Command
。単純なInvoke-Command
作品でInvokeCommand -AsJob
はありません。
作品:
動作しない:
使用されている ScriptBlock はかなり長めです。パラメータを宣言することから始めます。
さらに下では、HttpWebRequest と他のいくつかの .NET クラスを使用しています。
使用時に説明されているように、Start-Job
または子Invoke-Command -AsJob
ジョブが開始されたときは、単純にそのRunning
状態が永久に残ります。
この動作の原因は何ですか? それをデバッグするために何を使用できますか? エラーが発生した場合、子ジョブを強制的に終了させて、何が気に入らないかを教えてもらえますか?
Windows XP で PowerShell 2.0 を使用しています。
私が思いついたフレームワークでは、Start-Job
(現在はそのうちの 1 つにすぎませんが、ストレス テストのためにその数を増やす予定です)。次に、それらすべてが終了するのを待っているループがあります。
これにより、次の形式の出力が生成されます。
永遠に。
完全な最小テスト ケースは次のとおりです。
これは私のためにハングアップします。WebRequest オブジェクトを作成する行をコメントアウトすると、機能します。
ありがとうございました。
arrays - powershellコマンドを配列に入れる方法は?
一連の画像処理を行うスクリプトがあります。これまでのところ、順次実行され、1 つのコアのみを使用し、永遠に時間がかかります。手元に4つのコアがあります。これらのコマンドを 4 つ同時に実行したいと考えています。これを実現するには、コマンドを配列に入れる必要があります。これらはオリジナルのコマンドです:
これまでのところ、私はこれを思いつきました:
ジョブは開始されますが、すぐに終了します。コマンドを配列に格納する方法に関係していると思いますか?
powershell - 制限付きの powershell 開始ジョブ
これに答えることができるか、正しい方向に私を向けることができるかどうか知りたい.
URL をテスト/監視するスクリプトを作成しました。コードにエラーがないため、コードを投稿していません (必要な場合を除きます)。それはうまくいきます。開始ジョブの一部としてスクリプトブロックを実行することもできます。私が抱えている問題は、一度に 3 つ以上のジョブを実行できないか、ハングすることです。これがなぜなのかわかりません。合計 15 個の URL を 3 つに絞って実行できますが、これは素晴らしいことです。実行制限として 4 を使用して 15 の URL で実行しようとすると、ハングします..一度に 1 つずつ強制終了できます..3 つだけが残り、それらが終了するまで。そのため、合計 3 つの powershell インスタンスしか起動できないか、ハングするようです。これがなぜなのか説明できる人はいますか?すべての検索で、スロットリングの方法を示すページが表示されますが、それは実際には私の問題ではありません。
プロセスを監視すると、それぞれが約 25MB のメモリを消費し、アイドル状態になります... 1 つを強制終了すると、他の 3 つが CPU の使用を開始し、プロセスがおそらく 30MB のメモリに達して終了します。システムには 8 GB のメモリとクアッド コード I5-2400 CPU @ 3.10 GHz があります。リクエスト通り...
だから私は新しいsystem.net.webclientを使用し、[System.Collections.Queue]でこれを試してみました...しかし、3つの方法はすべてジョブを使用しています...それが表示されます..それ以上実行することはできません3 つのジョブが同時に開始されます。
powershell - Powershell ジョブのメモリ消費の問題
私はこれに1週間苦労しており、オンラインで見つけたすべての方法とオプションを使い果たしました. ここの誰かが私を助けてくれることを願っています。
powershell を使用して 8 つのジョブを開始しています。各ジョブは FFmpeg を実行して、7 分間のファイルをリモート RTMP サーバーにストリーミングしています。これはディスク上のファイルからプルしており、各ジョブは異なるファイルを使用します。コマンドは do while ループ内にあるため、常に再ストリーミングされます。
これにより、ジョブを起動したシェルが大量のメモリを蓄積し、可能な限り消費します。24 時間で、サーバーの 32 GB のうち 30 GB が消費されました。
これが私の起動コードです。助けていただければ幸いです。
}
ジョブを受け取って out-null にパイプしようとしました。do while ループを開始する前に $f を $null に設定しようとしましたが、オンラインで見つけた他のものも役に立ちませんでした。お時間をいただきありがとうございました!