Bash

關於 disown 內置選項 -h 的 Bash 文件說明

  • July 1, 2016

根據文件:

為防止 shell 向特定作業發送 SIGHUP 信號,應使用 disown 內置函式將其從作業表中刪除, 使用 disown -h 將其標記為不接收 SIGHUP。

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

注意引號中的OR

我可以確認簡單地使用disownwithout-h並重新記錄該過程沒有退出:

#!/bin/bash

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

看來這個-h選項是沒有必要的?如果它沒有工作,那麼它的目的是什麼?

如果沒有-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.

引用自:https://unix.stackexchange.com/questions/293339