はじめに
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は実行を継続します。