はじめに
disown
コマンドはUnixksh、bash、およびzshシェルの一部であり、現在のシェルからジョブを削除するために使用されます。 cd
のように またはpwd
、これはシェルビルトインコマンドであり、root権限は必要ありません。
このチュートリアルでは、disown
を使用するさまざまな方法について説明します。 Linuxでコマンドを実行して、ジョブを終了し、ログオフ後も実行を継続します。
前提条件
- Linuxを実行しているシステム
- コマンドライン/ターミナルウィンドウへのアクセス
disownコマンド構文
disown
の基本的な構文 コマンドは次のとおりです:
disown [options] jobID1 jobID2 ... jobIDN
Linuxでdisownコマンドを使用する
disown
Linuxのコマンドは、ジョブテーブルからジョブを削除するために使用されます。また、サーバーからログアウトした後でも、バックグラウンドでより長く複雑なジョブを実行し続けるために使用できます。
進行中のジョブを確認する
disown
を使用するには コマンドを実行するには、最初にLinuxシステムでジョブを実行する必要があります。
この例では、バックグラウンドで実行されているいくつかのジョブを開始します。
cat /dev/random > /dev/null &
ping google.com > /dev/null &
jobs
を使用する 現在のすべてのジョブを一覧表示するコマンド:
jobs -l
以下に示すものと同様の出力が得られるはずです:
ping
コマンドは‘+’で示されます 、つまり、現在アクティブなジョブです。
cat
コマンドは‘-’で示されます 、 ping
の場合、アクティブなジョブになることを意味します コマンドは終了します。
すべてのジョブを削除
ジョブテーブルからすべてのジョブを削除するには、次のコマンドを使用します。
disown -a
特定のジョブを削除する
ジョブテーブルから特定のジョブを削除する場合は、 disown
を使用します 適切なジョブIDを使用したコマンド。ジョブIDは、ジョブテーブルの括弧内にリストされています:
この例では、 ping
を削除する場合 コマンドの場合、 disown
を使用する必要があります ジョブ2のコマンド:
disown %2
disown
を使用する オプションやジョブIDを指定せずにコマンドを実行すると、ジョブテーブルの最後のジョブが削除されます。
現在実行中のジョブを削除する
現在実行中のジョブのみを削除するには、次のコマンドを使用します。
disown -r
この例では、両方のジョブが現在バックグラウンドで実行されているため、上記のコマンドはジョブテーブルをクリアします。
ログアウト後もジョブを実行し続ける
システムの端末を終了すると、現在実行中のすべてのジョブが自動的に終了します。これを防ぐには、 disown
を使用します -h
を使用したコマンド オプション:
disown -h jobID
この例では、 cat
を保持します。 コマンドがバックグラウンドで実行されています。終了時に終了しないようにするには、次のコマンドを使用します。
disown -h %1
disown
を使用した後 コマンド、ターミナルを閉じます:
exit
disown -h
を使用したすべてのジョブ コマンドonは実行を継続します。