システムが停止したときにリモートシステムでプロセスを終了する

システムが停止したときにリモートシステムでプロセスを終了する

SSHを介してリモートサーバー上で非常にリソース集約的なプロセスを開始しました。これはMATLABで実行される最適化の問題です。フルメモリとCPUが必要です。実際、私はそのマシンにsshを送ることもできず、まったく応答しません。プロセスをどのように終了しますか? root アクセス権がありません。

答え1

ユーザーがプロセスを開始し、リモートアクセスのみが可能な場合、オプションは制限されます。

プロセスをリモートで終了しようとしています。キューに追加するのに時間がかかることがあります。

ssh -l $USER $HOSTNAME 'pkill -9 MATLAB'

実行すると、実行中のプロセスは終了しません。ユーザーが作成したすべてのプロセスをいつでも終了できます。これは最後の手段となり、プロセス名がわかっている場合は回避できます。

ssh -l $USER $HOSTNAME 'pkill -9 -u $USER'

KVMまたはIPMIアクセス権がある場合は、これを無効にする時です。

答え2

コンピュータがネットワーク要求に応答しない場合、それは壊れています。簡単なトラブルシューティングプロセスでリモートアクセスができない場合は、コンソールアクセスが必要です。

忍耐を持ってください。システムが頻繁に交換されると、応答に数分かかることがあります。

今後は、SSHセッションを開いたままにして、潜在的に問題があるプロセスのプロセスIDを準備してください。このコマンドはすべての主要シェルに組み込まれているため、killシステムの負荷が多い場合やユーザーがプロセス制限に達した場合でもプロセスを終了できます。

さらに、次のコマンドを実行してMatlabプロセスが割り当てることができるリソースを制限することができます。ulimitコマンドを起動したシェルでコマンドを実行します。特に、ulimit -Sv 421つのプロセスで割り当てることができる仮想メモリの合計量は42kBに制限されます(この制限は、後でシェルで開始されるすべてのプロセスに適用されます)。

関連情報