このシナリオを想像してください。プログラムを実行します。しかし、完了するまでにどれくらいの時間がかかるかはわかりません。プロセスは数分間実行され続けます。他のいくつかの重要なプログラムがキューで待機しているため、これ以上待つことはできません。このような状況になったことがありますか?心配ない!プロセスを一時停止し、後でLinuxで再開する簡単なトリックを見つけました。
私がやろうとしていることは、現在実行中のプロセスを一時停止し、他のいくつかの重要なタスクを実行し、他のすべてのプロセスが完了した後に停止したプロセスを再開することです。
これは、マルチタスクを実行するRAMまたはプロセッサが少ない場合に非常に役立ちます。実行中のプロセスはいつでも一時停止し、後で最初からやり直すことなく再開できます。
それでは、実行中のプロセスを一時停止または一時停止し、後でLinuxおよびUnixライクなオペレーティングシステムで再開する方法を学びましょう。
プロセスを一時停止し、後でLinuxで再開します
これは絶対に簡単です! PID(プロセスID)を見つけて、 ps
を使用するだけです。 またはps aux
コマンドを実行して一時停止し、最後に kill
を使用して再開します コマンド。
例を見てみましょう。 wget
を使用してUbuntu18.04ネットブートイメージをダウンロードします コマンド:
$ wget http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/mini.iso &
ここでは、 &
シンボルは実行中のタスクを移動します(つまり、wget
)閉じずに背景に移動します。
ここで、このタスクを一時停止して、他の重要なタスクを実行したいと思います。これを行うには、最初にコマンドを使用して実行中のプロセスを見つけます:
$ ps
出力例:
PID TTY TIME CMD 30056 pts/0 00:00:00 bash 16143 pts/0 00:00:01 wget 32677 pts/0 00:00:00 ps
ご覧のとおり、wgetコマンドのPIDは 16143 。
ここでこのプロセスを停止しましょう。これを行うには、ターミナルから次のコマンドを実行します。
$ kill -STOP 16143
コマンドを使用して、プロセスが停止したかどうかを確認します:
$ ps
出力例:
PID TTY TIME CMD 8155 pts/0 00:00:00 bash 16143 pts/0 00:00:01 wget 16398 pts/0 00:00:00 ps [1]+ Stopped wget http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/mini.iso
見る? wget
プロセスが停止しました。
先に進み、他の重要なタスクを実行します。すべてのタスクが完了したら、次のコマンドを使用して停止したプロセスを再開します。
$ kill -CONT 16143
プロセスが実行されているかどうかを確認するには、ps
を実行します コマンド。
$ ps

見る?以前に停止したプロセスが再開されました!
すでに述べたように、これは、RAMまたはCPUの速度が遅いシステムでマルチタスクを実行できない場合に役立ちます。
TL; DR
まず、psコマンドを使用して実行中のプロセスのpidを見つけます。次に、 kill -STOP <PID>
を使用して一時停止します 、次にシステムを休止状態にします。システムを再開し、コマンド kill -CONT <PID>
を使用して停止したプロセスを再開します 。
システムを再起動した後も機能しますか?
システムを完全にシャットダウンまたは再起動した後でも、これは機能するのでしょうか。 いいえ 。これは、システムを再起動すると、プロセスのPIDが自動的に変更されるためです。再起動後も持続しません。このような場合、システム全体を一時停止または休止状態にし、準備ができたら再開できます。
そして、それがすべてです。 LinuxおよびUnixライクなオペレーティングシステムでプロセスを一時停止および再開する方法をマスターしました。これがお役に立てば幸いです。
おすすめの記事:
- 特定の時間にLinuxシステムを自動シャットダウン、再起動、一時停止、休止状態にする
- Linuxシステムをスリープモードまたは休止状態モードから自動的にウェイクアップします
- レプティル–実行中のプロセスを閉じずに1つのターミナルから別のターミナルに移動します
- Linuxコマンドをキューに追加して1つずつ実行する方法
- LinuxでProcsを使用してプロセス情報を表示する方法