Re: shell background job and trap SIGCHILD
On Fri, Oct 28, 2016 at 04:37:09PM +0300, Artem Chuprina wrote:
> Моя вот практика показывает, что если хочется работать с любым юниксом и
> нормально управлять процессами, то оптимальный выбор - perl.
...
> Правда, библиотечку приходится написать и таскать с собой, потому что на
+1
Однако ж, с управлением процессами под перлом мне как-то раз удалось
словить приключения. :) Был демон на перле, который для логгинга юзал
сторонний модуль Sys::Syslog. И вот однажды, после наката апдейтов,
в этом модуле случилось зацикливание. Оказалось, что добрые дяди,
писавшие этот модуль, в один прекрасный день решили, что писать в сислог
по умолчанию нужно в... подпроцессе! Ну и сделали в своём модуле fork().
А когда рождённый в либе подпроцесс завершался, демон получал SIGCHLD,
переходил к очистке структур для потомка и удивлялся тому, что такого
pid'a в регистре нет. Конечно же, ситуация с "посторонним" сигналом
у меня добросовестно обрабатывалась записью мессаджа в сислог... :))
Модуль логгинга был заменён самописным.
Если же хочется добротного шелла, то zsh можно найти собранный
практически для любых юниксов.
--
Eugene Berdnikov
Reply to: