Процессы дочернего процесса Linux не отбираются

Это вызывает значительные проблемы для переносимости сценариев между BSD и Linux.

Я нахожусь на CentOS 6.4, где это происходит.

У меня хороший компактный тестовый пример:

bash -c "inotifywait -mcr . | sed s/CLOSE/z/"

ps uf и соблюдайте:

  \_ bash -c inotifywait -mcr . | sed s/CLOSE/z/ \_ inotifywait -mcr . \_ sed s/CLOSE/z/ 

Затем найдите PID родительского процесса bash, убейте его.

Обратите внимание на то, как появилось приглашение оболочки, что свидетельствует о том, что наша оболочка уже ждет своего дочернего элемента.

Но если вы что-то делаете в файловой системе, чтобы инициировать inotify, чтобы сообщать больше событий, он продолжает сбрасывать на терминал. На OS X это не происходит, потому что все они будут мертвы.

ps uf снова. Посмотрите, что как inotifywait, так и sed теперь являются дочерними элементами init .

Мне это кажется совершенно неправильным.

Что говорит POSIX об этом?

Interesting Posts

Есть ли glibc API, который может найти приложение для передачи по умолчанию для типа MIME в Linux?

Pamd больше не монтирует диск ecryptfs с момента обновления

Ошибка apt python мешает мне разрешать проблемы с зависимостями для apt-get install

Удаление / переименование сетевого сетевого порта в OS X / Darwin

Добавление метки времени перед каждой строкой STDOUT внутри perlscript

Как перечислить atime для файлов?

Измерение дискового ввода-вывода программы

Сортировка точек монтирования по времени монтирования

Разрешения каталога Linux / srv возвращаются при перезагрузке

Ошибка разрешения сценария резервного копирования

Как смонтировать удаленный каталог sshfs на общедоступном сервере на недоступном клиентском компьютере?

Программа для планирования задач и управления RHEL

Переместить позицию окна приложения из командной строки в OSX

Версия Magic в Linux?

Что такое конфигурация iptables для моего рабочего стола?

Linux и Unix - лучшая ОС в мире.