文書によると:
シェルが特定のジョブに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
。