фоновый процесс вводится каналом

Проблема была ничем с установкой, но была о моем собственном дизайне ядра. После пересмотра части ошибки ядро может быть загружено успешно: screenshot after successful boot

14
04.04.2013, 19:41
1 ответ

Да, как требуется POSIX, команды, запущенные в фоне с & имейте их стандартный вход, перенаправленный от /dev/null.

И действительно

{ cmd <&3 3<&- & } 3<&0

самый очевидный путь состоит в том, чтобы работать вокруг этого.

Не ясно, почему Вы хотели бы выполнить часть конвейера в фоне все же.

12
27.01.2020, 19:51
  • 1
    состояла в том, чтобы получить PID одной определенной команды в цепочке канала (cmd1 | {cmd2 и; $ pid2=!;} | cmd3..., таким образом,/dev/null ==&0 является стандартным для процесса BG, Вы также знаете, почему "0 <&0" работает в ударе..., и действительно ли это безопасно? –  Asain Kujovic 04.04.2013, 20:50
  • 2
    @OmerMerdan POSIX говорит Во всех случаях, явное перенаправление стандартного входа должно переопределить это действие, которое противоречит так или иначе, что это сказало выше, таким образом, я верю bash интерпретирует его (и это походит на разумную интерпретацию) как отмена /dev/null перенаправление. Теперь, не много оболочек делают то же. Пепел и pdksh не делают. –  Stéphane Chazelas 04.04.2013, 20:55
  • 3
    Почему это 3<&- части было нужно, и действительно ли безопасно использовать его (разве, это не закроет канал перед полным входом ir чтение)? Поиск –  mvorisek 31.12.2017, 18:02
  • 4
    @Mvorisek, тот fd 3 только используется временно для восстановления исходного stdin. Мы закрываем его как cmd не нуждается в нем. Мы закрываем его после того, как мы копировали его на fd 0 (<&3 короткий для 0<&3). –  Stéphane Chazelas 31.12.2017, 18:39
  • 5
    @Mvorisek, nohup также перенаправления stdin к/dev/null, таким образом, Вам было бы нужно: { nohup sh -c 'cmd <&3 3<&-' & } 3<&0. Или (trap '' HUP; cmd <&3 3<&- > nohup.out 2>&1 &) 3<&0 –  Stéphane Chazelas 31.12.2017, 18:42

Теги

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