SSHセッションからログアウトし、Xサーバーを必要とするプログラムを実行し続ける

SSHセッションからログアウトし、Xサーバーを必要とするプログラムを実行し続ける

定期的にpng画像を生成し、ブラウザを介してアクセスできるサーバーに配置するPythonスクリプトがあります。このイメージは、サーバーで実行されているジョブの進行状況を示しています。 matplotlibを使用して画像を生成しています。

Pythonスクリプトは各画像を作成した後、スリープモードに入ります。 1時間後に目が覚めて新しい画像を作成し、再びスリープモードに戻ります。

SSHセッションを介してスクリプトを開始します。ログアウトするとスクリプトが終了します。この問題を扱う別のスレッドを読みましたが、提案された回避策は機能しません。次のコマンドでスクリプトを実行しても、ログアウト後にスクリプトが終了します。

nohup script.py &> job-monitor.log &

またはこうして走るなら

script.py
[Ctrl-Z]
disown -h %1
bg 1

奇妙なことに、ログアウトして再度ログインすると、スクリプトは実行されなくなり、job-monitor.logが空になることです。

何が起こる可能性があり、ログアウト後もスクリプトを実行し続けるにはどうすればよいですか?

追加情報:問題は、私が使用しているフローティングライブラリmatplotlibに関連しているようです。グラフィックがディスクに保存されているにもかかわらず、pngを作成するにはXセッションが必要になる可能性があると思います。

ベストアンサー1

問題がmatplotlibにある場合(つまり、接続を維持している場合はスクリプトが応答を提供しないか、sshがXwindow接続を渡すために機能する場合)、matplotlibrcファイルに入れる必要があります。

backend : AGG

これにより、スクリプトが機能するためにXwindowが不要になります。

おすすめ記事