組み込みオプション -h を拒否する Bash ドキュメントの説明

組み込みオプション -h を拒否する Bash ドキュメントの説明

文書によると:

シェルが特定のジョブにSIGHUP信号を送信しないようにするには、disown組み込み関数を使用してジョブテーブルから削除する必要があります。 またはSIGHUP を受信しないように表示するには、 disown -h を使用します。

https://www.gnu.org/software/bash/manual/html_node/Signals.html

参考にしてくださいまたは見積もりで。

disown簡単に使用して-h再ログインしてもプロセスが終了しないことを確認できます。

#!/bin/bash

( sleep 10s; echo 1 > b ) &
disown

このオプションは不要だと思いますか-h?それなしで動作する場合、その目的は何ですか?

答え1

そうでない場合、-hそのジョブはアクティブなジョブのリストから削除され、そうでない場合は-h削除されません。

すべてがマニュアルにあります:

 disown [-ar] [-h] [jobspec ...]

       (...)
       If the -h option is given, each jobspec is not removed
       from the table, but is marked so that SIGHUP is not sent to the
       job  if  the shell  receives  a SIGHUP.

jobsジョブ拒否を有効または無効にして実行した後の違いを確認してください-h

関連情報