web-dev-qa-db-ja.com

Ctrl + Cの後でmakeを再開できますか?

スーパーコンピュータークラスターにgccバージョン5.1をインストールしています。構成して、makeコマンドを実行しています。数時間経ちましたが、インストールが長いのでまだ稼働中ですが、もう仕事が終わって帰らなければなりません。使用する場合 Ctrl+C makeを終了するには、明日の朝にmakeを再実行すると、中断したところから再開されますか?それとも、最初からやり直す必要がありますか? makeを中断すると、問題やエラーが発生しますか?

3
Syrianthunder10

を押すと Ctrl+C、ターミナルで実行されているプロセス(技術的にはプロセスグループ)が強制終了されます。あなたはそれを復活させることはできません。もう一度実行するだけです。

makeの実行には、それぞれが1つのファイルをコンパイルしたり、いくつかのファイルをリンクしたり、1つのテストを実行したりする多くの手順が含まれます。 Ctrl+C、現在のステップはキャンセルされますが、前のすべてのステップのデータは引き続き存在します。 makeユーティリティは、すでに実行されているステップをすばやく見つけて、再度実行する必要がないように設計されています。したがって、makeを再度実行すると、状況が短時間(大規模なプロジェクトの場合は数秒程度)分析され、中断したところから再開されます。

マシンが一晩再起動されない場合は、その夜にログアウトしても、コマンドを実行し続けることができます。 screentmux などのターミナルマルチプレクサを起動します。たとえば、ターミナルから、

screen

これにより、ターミナルに新しいシェルが開きます。ここで、関連するディレクトリに切り替えて、makeと入力します。次に、を押して画面セッションから切り離します Ctrl+Ad。元のシェルプロンプトに戻りますが、画面内のコマンドはまだ実行されています。を実行することで、ログアウト、ログインし直し、実行中の画面セッションに再接続できます。

screen -rd