私はおそらく完了するのに数ヶ月かかるかなり難しい数学問題のアルゴリズムを開発しました。リソースが制限されているため、Ubuntu 12.04(x86)ノートブックでこれを始めました。今、私はいくつかのアップデートをインストールして実際にラップトップを再起動したいと思います(「もう一度始めてください」というメッセージは面倒です)。
再起動後も実行を続けるために割り当てられたメモリを含むプロセス全体を保存する方法はありますか?
以下は、あなたが必要とする可能性のあるプロセスに関するいくつかの情報です。必要に応じて追加情報をお問い合わせください。
- ""または"time ./binary> ./somefile &"コマンドを使用して端末からプロセスを呼び出しましたが、
./binary > ./somefile &
覚えていません。 - いくつかのデバッグ情報をstd :: cerrに印刷します(まれに)。
- 現在約600.0kiBを使用しており、この数字が増加しても急速に増加する可能性は低いです。
- プロセスは通常優先順位で実行されます。
- カーネルは3.2.0-26-generic-pae、CPUはAMD、オペレーティングシステムはUbuntu 12.04 x86です。
- 9日14時間行われました(キャンセルするには長すぎました;-))
ベストアンサー1
最良かつ最も簡単な解決策は、プログラムを変更して状態をファイルに保存し、ファイルを再利用してプロセスを再開することです。
Wikipediaページに基づいてアプリケーションスナップショットさまざまなオプションがあります。
- しかもクーラントしかし、維持されていないようです。
- Linuxチェックポイント/再起動良いオプションだと思いますが、カーネルを有効にする必要があります
CONFIG_CHECKPOINT_RESTORE
。 - クルー最新のプロジェクトにすることも、最良の選択かもしれませんが、特定の状況に応じて変わることがあります。カーネルオプションディストリビューションがまだ設定されていない可能性があります。
遅すぎますが、もう1つのより実用的なアプローチは、専用の仮想マシンでプロセスを開始してから、仮想マシン全体を一時停止して再起動することです。ハイパーバイザーによっては、ホスト間でコンピュータを移動することもできます。
将来的には、長期実行プロセスを実行する場所、並列化方法、ディスクがいっぱいになる、プロセス終了などの問題を処理する方法を検討してください。