[解決済み] python: 実行中のプロセスにコンソールをアタッチすることは可能ですか?
質問
プロセスの状態を見たいのですが、コンソールをプロセスにアタッチして、プロセス内で関数を呼び出したり、グローバル変数のいくつかを見たりすることは可能でしょうか。
プロセスが影響を受けずに実行されている方が良いです(もちろん、パフォーマンスは少し下がりますが)。
どのように解決するのですか?
プログラムのソースコードにアクセスできるのであれば、比較的簡単にこの機能を追加することができます。
参照
レシピ 576515
:
Debugging a running python process by interrupting and providing an interactive prompt (Python)
引用すると
<ブロッククオートこのコードは、Pythonの プログラムを 現在の時点で中断され 通常の python の 対話型コンソールで通信することができます。これによって ローカル、グローバル、関連するプログラム の状態を調査することができます。 任意の関数やクラスを呼び出すことができます。 クラスを呼び出すことができます。
使用するために、プロセスは モジュールをインポートし、起動時の任意の時点でlisten() を呼び出します。このプロセスに割り込むには このプロセスに割り込むには、スクリプトを直接実行します。 のプロセス ID をパラメータとして直接実行できます。 をパラメータとして直接実行できます。
ほぼ同じコンセプトの別の実装が、次のように提供されています。 rconsole . ドキュメントから。
rconsole は自動補完機能を持つ Python のリモートコンソールです。 であり、自動補完機能付きです。 を検査し、変更するために使用されます。 実行中のスクリプトの名前空間を調査し、変更するために使用されます。
スクリプトで呼び出すには、次のようにします。
from rfoo.utils import rconsole
rconsole.spawn_server()
<ブロッククオート
シェルからアタッチするには、次のようにします。
$ rconsole
<ブロッククオート
セキュリティ上の注意: rconsole リスナー を起動します。 あらゆるローカル接続を受け入れるので そのため、共有ホスティングや同様の環境で使用するには安全ではありません。 ホスティングなどの環境では安全ではありません!
関連
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み] スクリプトを実行しているPythonのバージョンを確認するにはどうしたらいいですか?
-
[解決済み] 2次元アレイにおけるピーク検出
-
[解決済み] Pythonです。私はどのOSで動いているのでしょうか?
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] Pythonのキャッシュライブラリはありますか?
-
[解決済み] ファブリック経由でデプロイユーザとしてvirtualenvを有効化する
-
[解決済み] Pythonで0xを使わずにhex()を使うには?
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】実行中のPythonアプリケーションのスタックトレースを表示させる。
-
[解決済み] Pythonでコード行間にかかる時間を測定するには?
-
[解決済み] Django のテストデータベースをメモリ上だけで動作させるには?
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] Pythonの要素別タプル演算(sumなど
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] PyMongoで.sortを使用する
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] djangoのQueryDictをPythonのDictに変更するには?