PCが起動した後、Pythonプログラムが再び実行を開始しますか?


15

完了までに数時間かかるpythonプログラムを実行しています。ラップトップの蓋を閉じた場合(スリープ状態にした場合)、ラップトップを再度開いたときにプログラムが再び起動しますか?既に数時間経っていて、すぐに離れなければならないので(ラップトップを閉じる必要があります)、プロセスを再び開始したくありません。プログラムはまったく同じポイントから始まりますか?Ubuntu 16.04のデフォルトの動作は何ですか?

Fyi、ネットワークリソースを使用しない分類子(CPUとRAMのみ)の相互検証を実行しています。

回答:


29

簡単な答えはイエスですが、真実はもう少し複雑です。

はい、アプリケーションは引き続き実行されます。システムの残りのプロセスで再開されます。ただし、ネットワーク接続やグラフィックスドライバーの状態など、ステートフルなものがあります。これらは外部ハードウェアで再初期化する必要があり、それは最初に追加されたネットワーク遅延、または適切な切断-再接続さえ意味するかもしれません(イーサネットで私に起こるように)。特に悪い状況-間違いなくルールの例外-では、デスクトップ環境全体がクラッシュして再起動する可能性があります。

だから私はあなたに何が起こるかを保証することはできません。ネットワーク接続が失われた場合にアプリケーションがクラッシュする場合は、問題がある可能性があります。レンダリングやCUDA / OpenCLなどを実行している場合、破損する可能性があります。

それが単なるCPU /ディスクのことなら、それは問題ないはずです。
しかし、誰が確実に知っています。コンピューターは私たちすべてをだます。
幸運を。


あなたは正しかった。私のラップトップを開いた後、私のプログラムは再び始まり、最終的に期待通りに実行を終了した。OT:私にとっては時間がかかったので(23時間戻ってきました)、それは実行時間または終了時間と開始時間の単なる違いを指していると思いますか?またはそれを伝えることはできませんか?
バーボンクリーム

time組み込みで実行したということですか?例time ./myscript.py
オリ

いいえ、パラメータverboseをTrueに設定して(cross_validation.cross_val_score)を使用しているメソッドは、最終精度と実行時に出力されます。
バーボンクリーム

「コンピューターは私たちすべてをだます。」仰るとおり!
水田ランダウ

6

システムをサスペンド(スリープ状態)すると、現在実行していることを表すすべてのCPUレジスタなどがRAMに保存され、RAMの内容を保持するコンポーネントとコンピューターをウェイクアップするために必要なコンポーネントを除くほとんどのコンポーネントの電源が切断されます後で再びアップします(入力デバイスなど)。

後で再び起動すると、以前の状態が復元され、コンピューターは中断した時点で正確に続行します。

それが主な概念です。もちろん、実際にはもっと多くのことが起こります。なぜなら、指を切り抜くときにこれがすべて魔法のように起こるわけではないからです。サスペンド前およびウェイクアップ後に実行される多くのシステムスクリプトなどがあります。

ただし、手動で何かを設定しない限り、コンピューターを一時停止しても、実行中のアプリケーションは閉じられません。プロセスで何かがクラッシュするという小さなリスクがありますが、通常は一度動作すると、常に動作します。


2

ラップトップがスリープ(=サスペンド)になった場合、間違いなくはい。中断できる唯一のものは、ネットワーク接続または同様のリアルタイムのものです。その場合、実行中のプログラムが一時的な障害を受け入れて回復するように安全に記述されているかどうかに依存します。

ラップトップの電源がオフになっている場合、間違いなく---コントロールパネルのどこかに2つの動作を決定するオプションがあると思います。


2

確認したい場合は、コントロールパネルの電源オプションから、蓋を閉じたときにコンピューターが余分な操作を行わないように選択できます。つまり、蓋を閉じたり開いたりしても、コンピューターの状態には影響しません。これにより、プログラムが中断なく実行されることが保証されます。


2
しかし、ラップトップのバッテリーが不足する可能性があります。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.