Windowsであるポート番号をListenしてるプロセスが何か知る方法

Windowsであるポート番号をListenしてるプロセスが何か知る方法
Photo by Sigmund / Unsplash

Windows(サーバー)で、あるポート番号を誰がListenしてるかを知る方法です。

対話式でやる方法

1回目のコマンド

netstat -ano | findstr ":443" | findstr "LISTENING"

これでプロセスID(PID)が判明する

実行結果

  TCP         0.0.0.0:443            0.0.0.0:0              LISTENING       20220
  TCP         [::]:443               [::]:0                 LISTENING       20220

2回目のコマンド

tasklist /fi "PID eq 20220"

実行結果

イメージ名                     PID セッション名     セッション# メモリ使用量
========================= ======== ================ =========== ============
node.exe                     20220 RDP-Tcp#0                  1    122,148 K
PS C:\Users\ml>


これでこのプロセスが誰かが判明する

一発で知る方法

以下をPowerShell にペタっとはると、
誰が指定のポート番号をListenしてるかPIDとその正体もわかります。

# Windows PowerShell用スクリプト

# あるポート番号を Listen しているプロセスが何か表示する


# ポート番号を指定(必要に応じて変更)
$port = 443

# 指定したポートをリッスンしているプロセスを検索
$connections = netstat -ano | Select-String ":$port\s+.*LISTENING"
if (-not $connections) { 
    Write-Host "ポート $port をリッスンしているプロセスはありません" 
    exit 
}

# 接続情報を表示
Write-Host "接続情報:"
$connections

# ユニークなプロセスIDを抽出して重複を排除
$processIds = @{}
$connections | ForEach-Object {
    $processId = $_.ToString().Trim() -replace '.*LISTENING\s+(\d+)', '$1'
    $processIds[$processId] = $true
}

# プロセス情報を表示(重複なし)
Write-Host "`nプロセス情報:"
$processIds.Keys | ForEach-Object {
    Get-Process -Id $_ | Select-Object Id, ProcessName, Path
    Write-Host "プロセスを停止するには: taskkill /PID $_ /F" -ForegroundColor Yellow
}

実行結果

プロセスを停止するには: taskkill /PID 20220 /F
   Id ProcessName Path
   -- ----------- ----
20220 node        C:\Program Files\nodejs\node.exe

PIDとプロセス名、そのプロセスの停止方法のヒントつきで表示されます

それでは、良きプロセス管理ライフを!

Read more

GPUサービスで「Segmentation Fault 」に出会ったら~分析から解決までの実践アプローチ~

GPUサービスで「Segmentation Fault 」に出会ったら~分析から解決までの実践アプローチ~

こんにちは! 今日は仮想環境+GPUなサービスにおける「Segmentation Fault」について、分析と対処法について書いてみたいと思います。 Segmentation Faultの本質と特徴 Segmentation Faultは、プログラムが保護されたメモリ領域にアクセスしようとした際にOSが発生させる例外です。 今回は複数のGPUサービス(つまりGPUを使うプロセス)が動作していて、そのうちの1つを再起動したときに発生しました。 毎回発生するわけではありません。むしろ数百回の起動に1回程度ですが、1回でも発生すると絶望的な結果につながります。というのも、1つのGPUサービスの停止が SPOF となってサービス全体に影響が発生します。かつ、1回でも「Segmentation Fault」が発生してしまうと、その原因となったプロセスが二度と起動しなくなる、というやっかいな現象でした。 このように「普段は正常に動作しているのに突然動かなくなる」というのがデバッグを非常に難しくします。 とくにGPU+仮想化の組み合わせで従来のC++アプリよりも発生確率がぐっとあがる印象

By Qualiteg プロダクト開発部
シェルスクリプトからcondaコマンドを活用したいとき

シェルスクリプトからcondaコマンドを活用したいとき

こんにちは! 今日はみんな大好きcondaコマンドについてです。 condaコマンドで仮想環境に入って、何らかの処理をして、戻ってくる ようなシェルスクリプト、バッチタスクをやるときのTipsです。 AI開発において、Anacondaとその中核であるcondaパッケージマネージャーはとっても重宝します。 しかし、シェルスクリプトから自動的にcondaを利用しようとすると、意外なハードルがあります。 本記事では、シェルスクリプトからcondaコマンドを正しく呼び出す方法について解説します。 condaと非対話モードの課題 AnacondaがインストールされているLinux環境において、condaコマンドは通常、.bashrcや.bash_profileなどの設定ファイルによって初期化されます。 なんとなくシェルをつかっていると、このcondaコマンドの初期化を忘れてしまいますが、これらの設定は多くの場合シェルの「対話モード」でのみ有効になるように設計されています。 ゆえにシェルスクリプトのような非対話モードでは、condaコマンドが正しく機能してくれません 例えば、.b

By Qualiteg プロダクト開発部
Node.jsで大容量ファイルを扱う:AIモデルのような大きなデータ保存はストリーム処理使いましょう

Node.jsで大容量ファイルを扱う:AIモデルのような大きなデータ保存はストリーム処理使いましょう

こんにちは!今日はAIシステムのフロントサーバーとしてもよく使用するNode.jsについてのお話です。 AIモデルの普及に伴い、大容量のデータファイルを扱う機会が急増しています。LLMなどのモデルファイルやトレーニングデータセットは数GB、場合によっては数十、数百GBにも達することがあります。 一方、Node.jsはWebアプリケーションのフロントサーバーとして広く採用されており、データマネジメントやPythonで書かれたAIバックエンドとの橋渡し役としてもかなりお役立ちな存在です。 本記事では、Node.js v20LTSで5GB程度のファイルを処理しようとして遭遇した問題と、その解決方法について解説します。 Node.jsのバッファサイズ制限の変遷 Node.jsのバッファサイズ制限は、バージョンによって大きく変化してきました Node.jsバージョン サポート終了日 バッファサイズ上限 備考 Node.js 0.12.x 2016年12月31日 ~1GB 初期のバッファサイズ制限(smalloc.kMaxLength使用) Node.js 4.

By Qualiteg プロダクト開発部
AGI時代に向けたプログラマーの未来:役割変化とキャリア戦略

AGI時代に向けたプログラマーの未来:役割変化とキャリア戦略

はじめに 私がはじめてコードを書いたのは1989年です。 当時NECのPC88というパソコンを中古でかってもらい N-88 Basic というBASIC言語のコードをみようみまねで書いて動かしたあの日から何年経つのでしょうか。 当時、電波新聞社のマイコンBASICマガジンという雑誌があり、ベーマガにはいろんなパソコン向けのプログラムコードが掲載されていました。 そんなわけでもう35年以上趣味や仕事でプログラミングに従事していますが、開発環境、情報流通の仕組みには革命といっていいほどの変化、進化がおこりました。 しかしながら、そんな中でも、あくまでコードを書くのは「私」という生身の人間でした。 そうしたある種の古き良き時代は、いよいよ本格的に終わりを告げようとしています。 2023年ごろからのLLM技術の飛躍的進歩により、プログラミング業界は大きな転換期を迎えています。 特に、OpenAI o3,o1やClaude 3.5、Gemini2.0などの大規模言語モデル(LLM)の進化や、その先にある将来的な汎用人工知能(AGI)の出現は、プログラマーやAIエンジニアの役割に根

By Tomonori Misawa / CEO