私はシェルスクリプトで作業していますが、ステートメントが長時間実行されていると認識された場合は、OSでPIDを取得する必要があります。 (例:Oracle)。一番上を確認して一致するプロセスを終了し、後で実行中のセッションが存在する場合はスクリプトを使用してデータベースをチェックすることができます。プログラムの長時間実行されている特定のPIDを強制終了した後、シェルスクリプトはユーザーにメール情報を送信する必要があります。ここシェルスクリプトを使用してoracle dbの長時間実行されている複数のセッションを終了する
[[email protected] ]$ps au |grep oracle | awk 'print {$2}' |uniq
10020
15678
17345
18736
18856
私の質問は、私はtopコマンドに記載されている上記のプロセスのいずれかを参照してくださいいけないされているので、どのように私は、スクリプト内でこれらの非既存のプロセスを検証する必要がありますか?またはそのトリックを行うことができるより良い1つのライナーやコードスニペットがありますか?どんな提案も大変ありがとうございます。サーバーからのセッションを殺す
おかげ
は、多分それはあなたを助けることができる、SQLNET.RECV_TIMEOUT' 'のためのマニュアルを参照してください:セッションのサーバーのPIDを取得するには、このクエリで
v$process
とv$session
ビューを照会することができます。 https://docs.oracle.com/cd/E11882_01/network.112/e10835/sqlnet.htm#NETRF227 – Azize