2016-09-04 22 views
0

ローカルマシンのCTRL+Cに完全に対応するプロセスがあります。そして、それも働いているようです。プロセスを強制終了しないctrl + c

しかし、EC2インスタンスでは、フリーズして機能しなくなり、ゾンビプロセスになります。

kill -9 <PID>は、それを削除しないと、私はそれを適切にクリーンアップするEC2インスタンスを再起動する必要があります。

それはまた、私は以上の影響がないと、それはやっているかを確認することで任意のソースコードへのアクセスを持っていない家の中で開発された共有ライブラリをロードし実行します。このライブラリはCUDAも使用し、複数のスレッドを開始するようです。

シグナルハンドラをメインスレッドにインストールしようとしましたが、インストールされていますが、_exitを呼び出してもプロセス全体がシャットダウンされず、まだ待機しているようです。

はなぜきれいプロセスから出るのCTRL+Cを妨げていること、ここで起きているのでしょうか?私は他のスレッドが何をしているのかを上書きするか調べることができますか?

+0

缶'ps -ly $ PID'で' S'(状態)の列の内容を調べます。それが 'D 'の場合、プロセスは' uninterruptible sleep'になります。 – redneb

+0

Z.なぜ刈り取られないのですか?私はシェルから対話的にプロセスを蹴ったのですか? – Matt

+0

シェルはまだ親プロセスとしてリストされていますか?テストとして、SIGCHLDを親プロセスに直接送信して、それが収穫するように微調整するかどうか確認できますか? – kaylum

答えて

0

ああ、私は問題を発見しました。それが他の人を助ける場合に備えて、私は質問をそのまま残します。

それは私のPC上で、私はGTX 680を持っており、CUDAをインストールする際にドライバがインストールされますことが判明しました。 EC2ではカードはGRID K520で、CUDAによってインストールされたドライバは動作しません。私は最新の安定したカード固有のドライバをダウンロードしてインストールした。

発見はnvidia-smiの実行後に行われ、カードに関する詳細は表示されず、むしろKilledと表示されます。もう一度nvidia-smiを実行すると、コンソールがロックされます。

残念ながら、私はCUDAアプリケーションさんが働いていたことをテストしたが、それはロードされ、それが働いていたと仮定したと言ってログにメッセージを出力するために表示されるドライバに頼っていませんでした。

ドライバをアップデートするには、nvidiaから最新のドライバをダウンロードしてください(.runバージョンを使用してください)。その後:

sudo modprobe -r nvidia_uvm 
sudo modprobe -r nvidia 

最後のようなコマンドを使用してインストールします。私は、インスタンスを再起動し、このリンクは、洞察力だったのnvidia-SMI

でそれを確認し

sudo ./NVIDIA-Linux-x86_64-3xx.xx.xx.run 

からCUDA 7.5 unstable on EC2

関連する問題