Linuxで応答しないアプリケーションを見つける方法

Linuxで応答しないアプリケーションを見つける方法

Windows(Powershell)からLinux(Shell Script)に監視スクリプトを移行したいと思います。 Windowsで確認する1つは、アプリケーションが「応答しない」場合です。 (たとえば、タスクマネージャを開くと、「実行中」または「応答なし」と表示されます)

Linuxにもこれに対応するものはありますか?それでは、どうやって見つけることができますか?オンラインで検索しましたが、どのように検索するかを説明するものが見つからず、アプリが応答しない場合は何をすべきかを見つけることができます。

答え1

Linuxでは、プロセスはさまざまな状態にある可能性があります。

  1. 実行中(R):プロセスが実行中または実行する準備ができています。
  2. 割り込み可能(S):この状態はプロセスがブロックされた状態で、他のプロセスのイベントや信号を待っています。
  3. Uninterruptible(D): ブロック状態でもあります。ハードウェア状態を待っていて信号を処理できない特定の条件では、プロセスは強制的に停止します。
  4. 停止(T):プロセスが完了すると、この状態が発生します。プロセスを再開できます。
  5. Zombie(Z): この状態ではプロセスは終了しますが、プロセステーブルの情報は引き続き使用できます。

「ps」コマンドと「grep」を実行して状態を確認できます。たとえば、

ps aux | awk '{if ($8 ="D") print}'

答え2

参考のために、次のリンクを見つけました。これは非常に便利で正確です。 Linux マニュアルに付属工程(5)

state  %c
                    One of the following characters, indicating process
                    state:

                    R  Running

                    S  Sleeping in an interruptible wait

                    D  Waiting in uninterruptible disk sleep

                    Z  Zombie

                    T  Stopped (on a signal) or (before Linux 2.6.33)
                       trace stopped

                    t  Tracing stop (Linux 2.6.33 onward)

                    W  Paging (only before Linux 2.6.0)

                    X  Dead (from Linux 2.6.0 onward)

                    x  Dead (Linux 2.6.33 to 3.13 only)

                    K  Wakekill (Linux 2.6.33 to 3.13 only)

                    W  Waking (Linux 2.6.33 to 3.13 only)

                    P  Parked (Linux 3.9 to 3.13 only)

関連情報