On Wed, 20 Jan 2016, Dmitry Derjavin wrote:
Пн, 18 янв 2016, 21:50, walter:
на деле же вывод процесса не скрывается. управление терминалом
возвращается, но вывод запущенной команды продолжает сыпаться в
терминал.
Насколько я понимаю, дело в том, что фоновый процесс имеет право
игнорировать SIGTTOU, который он получает каждый раз, когда пытается
вывести что-то на стандартный вывод, находясь в фоне. Оправдано такое
поведение или нет в каждом конкретном случае — вопрос спорный. Но
определённо это фича а не баг. Причём, фича очень древняя. ;)
Проблема еще и в том, что в зависимости от настроек терминала
сигнал SIGTTOU может посылаться или нет:
http://curiousthing.org/sigttin-sigttou-deep-dive-linux
Мне кажется, что это все проистекает из вопросов типа:
кому надо и кому не надо посылать SIGTTOU в pipe
comand1 | comand2 &
И не надо забывать о stderr.
Ю.