Disown は -h オプションを使用しません。

Disown は -h オプションを使用しません。

私はコマンドを実行していますが、SSHセッションを閉じた後でもコマンドを実行したいと思いました。引数で始まらずにコンテキスト(-、)&に入れました。今、接続が切断された後も続行するようにします。それが目的ですか?私はこれを試しました(私の仕事を#1としてマーク)、次に次のような結果を得ます。CTRLzbgdisown -hdisown -hdisown -h 1jobs

disown: job not found: -h

disownパラメータの代わりに作業仕様として「-h」を使用するのはなぜですか?zshそれが重要な場合は、私にあります。

ベストアンサー1

bashzshおよびksh93はコマンドを含むシェルですdisown。 3つのうち、オプションをサポートbashする唯一のものですh-hこれがなければ、zshアクションはシミュレートされ(作業テーブルから削除されます)、それを使用すると-hアクションがシミュレートされますksh93(終了時にSIGHUPは送信されませんが、作業テーブルから削除されず、死ぬか死ぬ可能性がありますbgfg。それ)。

次のようにzshを使用してこの動作をシミュレートできます。

typeset -A nohup
trap 'disown %${(k)^nohup}' EXIT
trap 'for i (${(k)nohup}) (($+jobstate[i])) || unset "nohup[$i]"' CHLD

したがって、nohup連想配列は、終了時にSIGHUPを送信せずにジョブリストを保存します。したがって、でdisown -h %1書くことができますnohup[1]=

setopt nohup終了時にジョブにSIGHUPを送信しないも参照してください。

おすすめ記事