コマンドプロンプト(DOS/バッチ) | ミニミニ管理者(システム管理者/社内SE/CIO)の独り言

[ ミニミニ管理者の独り言コマンドプロンプト(DOS/バッチ) > タスクを強制的に終了させる(TASKKILLコマンドの使い方) ]
スポンサードリンク

タスクを強制的に終了させる(TASKKILLコマンドの使い方)

JUGEMテーマ:コンピュータ

今回はWindowsのタスク(サービス/アプリケーション)をDOSコマンド のバッチ処理で強制的に終了させるウィンドウズXP(Pro)からのMS-DOSコマンドである「taskkill」コマンドの使用方法の紹介です。
この方法を知っておくと下記の手順にて自動的にサーバを再起動することが可能になりますので、サーバのメンテナンスを自動化することも可能です。

《参考》
taskkill」コマンドはWindowsXP Professional付属のコマンドで、Home Editionにはありません
WindowsXP Home Editionで「taskkill」コマンドを実行する際には、別途「taskkill簡易版」等のソフトウェアを利用する必要があります。
・taskkill簡易版
http://www.vector.co.jp/soft/winnt/util/se401845.html
※使用可能オプションは、/F /IM /PIDです。

実行手順例
 1)稼働中のアプリケーション(サービス/タスク)を終了(本稿紹介の「taskkill」コマンド)
 2)Windowsをシャットダウン(「shutdown」コマンド)
 3)Windows XPに自動的にログオン

といった一連の流れをDOSコマンド のバッチ処理をタスク登録して自動化可能になります。
ただ、今回の「taskkill」コマンドはあくまでも「強制終了」なので、終了手順が明確な場合はそのコマンドを用いて実行して下さい。あくまでも今回紹介するコマンドは「最終手段」として念のため実行する程度が良いかもしれません。(夜間ジョブで正常終了しなかった場合の保険として2段階で処理する。)

説明
この「TASKKILL」コマンドは「ウィンドウタイトル(ウィンドウ上部の青いバーの文字列)」「PID(プロセスID)」「イメージ名(exe)」を指定して強制終了できます。
因みに「PID(プロセスID)」の取得(確認)方法は、「タスクマネージャを起動して、プロセスタブから該当するイメージ名(exe)の行のPID欄」で確認できます。
また、「tasklist」コマンドを利用してもPID(プロセスID)は確認できます。
参考:TASKLISTの使い方(PID/メモリ使用量を調べる)

コマンドプロンプトから実行
dos>TASKKILL [/S システム [/U ユーザー名 [/P [パスワード]]]] { [/FI フィルタ] [/PID プロセスID | /IM イメージ名] } [/F]
※コマンドの引数については下記の表を参照。

使用例(サンプル)
1)PIDが「1230」「1241」「1253」とプロセスが開始したすべてのプロセスを終了。
    dos>TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
2)イメージ名が「notepad.exe」「mspaint.exe」のプロセスを終了。
    dos>TASKKILL /F /IM notepad.exe /IM mspaint.exe
3)「WINDOWTITLE」が「untitle」で始まらないものを強制終了。
    dos>TASKKILL /F /FI "WINDOWTITLE ne untitle*"
4)起動しているアプリケーションの中で応答がないものを強制終了させます。
   dos>taskkill.exe /f /fi "status eq not responding"
※「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」とエラーになり、実行できない場合は「システム環境変数でpathが設定されていない」もしくは「WindowsのエディションがHome Edition」です。

■パラメータ一覧

パラメータ 説明
/S システム 接続するリモート システムを指定します。
/U [ドメイン¥]ユーザー コマンドが実行されるユーザー コンテキストを指定します。
/P [パスワード] 提供されるユーザー コンテキストのパスワードを指定します。省略された場合は、入力を要求します。
/F プロセスの強制終了を指定します。(タスクマネージャからの「プロセスの終了」に相当)
/FI フィルタ フィルタによって指定された、与えられた条件に一致するタスクを表示します。
/PID プロセスID 終了させるプロセスの PID を指定します。
/IM イメージ名 終了させるプロセスのイメージ名を指定します。ワイルドカード '*' を使用してすべてのイメージ名を指定できます。
※ワイルドカード '*' は、フィルタを使うときのみ有効になります。
/T ツリー削除: 指定したプロセスとそのプロセスが開始したすべてのプロセスを削除します。
/? このヘルプまたは使用法を表示します。

■フィルタ
フィルタ名 有効な演算子 有効な値
HOSTNAME eq, ne コンピュータ名
STATUS eq, ne RUNNING(実行中)
NOT RESPONDING(応答なし)
IMAGENAME eq, ne イメージ名
PID eq, ne, gt, lt, ge, le PID(プロセスID) 値
SESSION eq, ne, gt, lt, ge, le セッション番号
CPUTIME eq, ne, gt, lt, ge, le 次の形式の CPU 時間
hh:mm:ss
hh - 時間
mm - 分、ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le メモリ使用量 (KB)
USERNAME eq, ne [ドメイン¥]ユーザー の形式のユーザー名
MODULES eq, ne DLL 名
SERVICES eq, ne サービス名
WINDOWTITLE eq, ne ウィンドウのタイトル
※リモート プロセスの終了は、/F オプションの指定したかどうかにかかわりなく強制的に実行されます。

■演算子の意味

  • eq : 一致(値と一致する)
  • ne : 不一致(値と一致しない)
  • gt : より大きい(指定した値を含まない)
  • lt : より小さい (指定した値を含まない)
  • ge : 以上 (指定した値を含む)
  • le : 以下 (指定した値を含む)

    システム管理者必見!DOSの活用事例

    ポイントサイトで効率的に稼ぐ方法を紹介!
  • ◆Windows XPの自動再起動 バックナンバー◆
    1)Windows XPでの自動シャットダウンコマンド(バッチ処理)
    2)Windows XP へ自動ログオンする
    3)タスクを強制的に終了させる
    4)Windows XPの自動再起動バッチ処理(実践編)



                   最新記事へ     トップページ



    スポンサードリンク


    ■Blog Ranking■
    1. ←←サーバー構築・運用ブログあり お奨め:★★★★★
    2. (ブログランキング ドット ネット)
    3.にほんブログ村 IT技術ブログへにほんブログ村
    4.BS blog Ranking
    ブログランキングに挑戦中です。あなたもブログランキングに挑戦してみよう!
    サーバー構築・運用ブログなんかもありますのでシステム管理者の方にもお奨めのサイトがあり!
    ソニーストア
    ボーズ・インイヤーヘッドホン

    [ ミニミニ管理者の独り言コマンドプロンプト(DOS/バッチ) > Windows XPでの自動シャットダウンコマンド(バッチ処理) ]
    スポンサードリンク

    Windows XPでの自動シャットダウンコマンド(バッチ処理)

    JUGEMテーマ:コンピュータ

    Windows XPをバッチ処理にて自動シャットダウン(引数指定で再起動も可能)させる方法です。
    次回紹介する予定の「Windows XP へ自動ログオンする」と組み合わせると「無人でWindows XPの再起動」によるメンテナンス等も可能です。

    1)コマンドプロンプトから実行
    dos>shutdown [-i | -l | -s | -r | -a] [-f] [-m ¥¥コンピュータ名] [-t xx] [-c
     "コメント"] [-d up:xx:yy]
    ※コマンドの引数については下記の表を参照。

    2)バッチ処理内での呼び出し方法
    call c:¥i386¥shutdown -r
    ※c:¥i386¥は「shutdown.exe」の格納パス。
    ※予め環境変数を設定(手順はこちら)しておけば格納パスを指定しなくても実行可能。

    3)Shutdownコマンドの引数一覧
    引数 内容
    引数なし このメッセージを表示します (-? と同様)
    -i GUI インターフェイスを表示します。このオプションは最初に指定する必要があります
    -l ログオフ (-m オプションとは併用できません)
    -s コンピュータをシャットダウンします
    -r コンピュータをシャットダウンして再起動します
    -a システム シャットダウンを中止します
    -m ¥¥コンピュータ名 シャットダウン/再起動/中止するリモート コンピュータの名前です
    -t xx シャットダウンのタイムアウトを xx 秒に設定します
    -c "コメント" シャットダウンのコメントです (127 文字まで)
    -f 実行中のアプリケーションを警告なしに閉じます
    -d [u][p]:xx:yy シャットダウンの理由コードです
    u = ユーザー コード
    p = 計画されたシャットダウンのコード
    xx = 重大な理由コード (255 以下の正の整数)
    yy = 重大ではない理由コード (65535 以下の正の整数)

    システム管理者必見!DOSの活用事例

    ◆Windows XPの自動再起動 バックナンバー◆
    1)Windows XPでの自動シャットダウンコマンド(バッチ処理)
    2)Windows XP へ自動ログオンする
    3)タスクを強制的に終了させる
    4)Windows XPの自動再起動バッチ処理(実践編)


                   最新記事へ     トップページ



    スポンサードリンク


    ■Blog Ranking■
    1. ←←サーバー構築・運用ブログあり お奨め:★★★★★
    2. (ブログランキング ドット ネット)
    3.にほんブログ村 IT技術ブログへにほんブログ村
    4.BS blog Ranking
    ブログランキングに挑戦中です。あなたもブログランキングに挑戦してみよう!
    サーバー構築・運用ブログなんかもありますのでシステム管理者の方にもお奨めのサイトがあり!
    ソニーストア
    ボーズ・インイヤーヘッドホン

    [ ミニミニ管理者の独り言コマンドプロンプト(DOS/バッチ) > WEBアプリケーションに接続しているクライアントの確認方法! ]
    スポンサードリンク

    WEBアプリケーションに接続しているクライアントの確認方法!

    JUGEMテーマ:コンピュータ

    サーバ上で稼動しているWEBアプリケーションが利用しているポート番号を知りたいときに有効な方法で、「netstatコマンド」があります。これは引数の使い方しだいで「どのアプリ(実行ファイル)にどのポートを割り当て(関連付)したかを調べられます。

    ただ、これだけではなく「WEBアプリケーションに接続しているクライアントも確認」できます。
    これは便利です。

    1)スタート−ファイル名を指定して実行を選択。
    2)名前に「cmd」と入力して、コマンドプロンプトを起動します。
    3)コマンドラインを入力。
     dos>netstat -a  -b -o
      引数a:全てのリッスンポートを表示
      引数b:実行可能ファイル名を表示
      引数n:アドレスとポート番号を数値形式で表示します。
      引数o:各接続に関連付けられたそれらを所有するプロセスIDを表示

    ■netstatコマンドの実行結果
    /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
    c:¥>netstat -a  -b -o
    Active Connections

      Proto  Local Address          Foreign Address        State           PID
      TCP    server01:8080        client01:1215          ESTABLISHED     3900
      [java.exe]

    /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/

    ・stateの内容
     LISTENING:待ち受け状態(リッスン状態)のポート。
     TIME_WAIT:コネクションの終了待ち状態。しばらく待ったあと、CLOSEDへ遷移して終了する。
     ESTABLISHED:TCPコネクションが確立して通信している状態。

    実行結果に表示される「Local Address」には実行したサーバのホスト名と接続に利用したポート番号が表示され、「Foreign Address」にはクライアントのホスト名が表示されます。
    また、「引数o」によりプロセスIDも表示されるので、タスクマネージャと合わせて確認するとメモリ使用量なども確認できます。

    なお、引数bの変わりに引数nを指定するとクライアントのIPアドレスが表示されるのでより詳細に確認が出来ます。

    ■WEBアプリケーションに接続しているクライアントの確認
    netstatの「state:ESTABLISHED」で、実行結果に「文字列:8080」を含む行のみを表示させる。
     dos>netstat -ano | find "ESTABLISHED" | findstr 8080

    /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
    dos>netstat -ano | find "ESTABLISHED" | findstr 8080
      TCP    Server_IP:8080    Client01_IP:1605      ESTABLISHED     3348
      TCP    Server_IP:8080    Client02_IP:1312      ESTABLISHED     3348
    /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/

    このコマンドで、「実行時点で接続しているクライアントのIPアドレスと使用ポート、サーバのIPアドレスと仕様ポート、サーバのPID」が一覧形式で分かります。

    運用中にTomcat等のWebアプリケーションを停止・再起動する際に接続しているユーザを確認できて便利です。

    ■netstatコマンドのヘルプ(Windows Server2003)
    プロトコルの統計と現在の TCP/IP ネットワーク接続を表示します。
    NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]

    引数 詳細
    -a すべての接続とリッスン ポートを表示します。
    -b それぞれの接続またはリッスン ポートの作成に使われた実行可能ファイルを表示します。場合により、よく知られた実行可能ファイルが複数の独立したコンポーネントをホストすることもあり、この場合、接続またはリッスン ポートの作成に使われたコンポーネント群が表示されます。この場合、実行可能ファイル名は下に [] で表示され、上には TCP/IP に到達するまで順に呼び出したコンポーネントが表示されます。このオプションには時間がかかり、十分なアクセス許可がないとエラーが発生することに注意してください。
    -e イーサネットの統計を表示します。これは、-s オプションと併用できます。
    -n アドレスとポート番号を数値形式で表示します。
    -o 各接続に関連付けられたそれらを所有するプロセス ID を表示します。
    -p proto proto で指定されたプロトコルの接続を表示します。; proto は次のいずれかです: TCP、 UDP、TCPv6、または UDPv6。プロトコルごとの統計を表示するため、-s オプションと併用する場合、proto は次のいずれかです: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP またはUDPv6。
    -r ルーティング テーブルを表示します。
    -s プロトコルごとの統計を表示します。既定では、IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP および UDPv6 の統計が表示されます。-p オプションを使って、既定のプロトコルのサブセットを指定することもできます。
    -v -b と併用した場合、このオプションでは、すべての実行可能ファイルの接続またはリッスン ポートの作成に使われたコンポーネント群が表示されます。
    interval 各表示で interval 秒間一時停止しながら、選択した統計を再表示します。統計の再表示を停止するには、CTRL+C を押してください。interval が省略された場合、現在の構成情報を一度だけ表示します。


    システム管理者必見!DOSの活用事例







                   最新記事へ     トップページ


    スポンサードリンク


    ■Blog Ranking■
    1. ←←サーバー構築・運用ブログあり お奨め:★★★★★
    2. (ブログランキング ドット ネット)
    3.にほんブログ村 IT技術ブログへにほんブログ村
    4.BS blog Ranking
    ブログランキングに挑戦中です。あなたもブログランキングに挑戦してみよう!
    サーバー構築・運用ブログなんかもありますのでシステム管理者の方にもお奨めのサイトがあり!
    ソニーストア
    ボーズ・インイヤーヘッドホン