Отрицайте не выберет-h вариант

ALT+0 работает на меня (я использую хинду Linux).

6
21.01.2016, 20:58
2 ответа

bash, zsh и ksh93 оболочки, которые имеют a disown команда. Из этих трех, bash единственный, который поддерживает a h опция. Без -h это emultates zsh поведение (удаляют из таблицы задания), в то время как с -h это эмулирует ksh93 поведение (не отправит ему SIGHUP на выход, но не удаляет его из таблицы задания, таким образом, Вы можете все еще bg или fg или уничтожьте его).

Вы могли эмулировать то поведение с 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 в любое задание на выход.

6
27.01.2020, 20:24
  • 1
    Сначала, что %1 в Вашем примере и ответе @mrb? Я думаю всего "1", отдельно работал (как в, disown 1) когда я попробовал его. Во-вторых, опция, к которой Вы обращаетесь NO_HUP? Я нашел HUP в zshoptions страница справочника, и я предполагаю, что можно лавировать на NO_ выключить материал? –  Coderer 30.11.2012, 10:28
  • 2
    % для спецификаций задания. Это не нужно для fg, bg или disown, но для kill, таким образом, я выработал привычку использования его каждый раз, когда я обращаюсь к заданию в противоположность идентификатору процесса. Да setopt noopt совпадает с unsetopt opt и символы нижнего подчеркивания проигнорированы. Это документируется. –  Stéphane Chazelas 30.11.2012, 12:44

disown самостоятельно достаточно, чтобы позволить программе продолжать бегать за Вами разъединение:

$ command_running_forever
^Z
zsh: suspended  command_running_forever
$ bg
[1]  + continued  command_running_forever
$ jobs
[1]  + running    command_running_forever
$ disown %1
$ logout

disown -h использует аргумент удара, который заставляет задание оставаться на таблице задания и не получает SIGHUP, когда удар получает SIGHUP (согласно удару help disown). Этот аргумент не доступен с zsh.

4
27.01.2020, 20:24

Теги

Похожие вопросы