December 25th, 2007

default

On Vox: Качалка

Удалось наконец-то вчера Митрича загнать в боль-мень нормальное время в кровать, а сегодня, соответственно выгнать. Соответственно, я устремился душой и телом в качалку, в которой не был уже месяц, пожалуй. Конечно, ослаб, но не так, как предполагал, что радует. Ну и на эллиптикал вернулся уже дня три как, что тоже не может не радовать. В общем, есть основания для осторожного оптимизма.

Да, поскольку записей про ЗОЖ (*) уже не так много, как бывало, я их, пожалуй, буду теперь постить в открытый доступ (за исключением, разве что, пятничных отчетов), в категории лытдыбра.

Originally posted on dimrub.vox.com

default

On Vox: Python unshrugged

Пребывая в некотором глубоком аху недоумении, обращаюсь к друзьям за советом и утешением.

Есть у меня некий скриптик на пайтоне, который запускается неким главным процессом в системе. Этот главный процесс помимо моего скриптика еще кучу всего запускает. И вот, допустим, этого скриптика хотят убить. Посылают ему TERM. Он этот TERM культурненько перехватывает, делает себе там, что нужно, и тихо-мирно помирает, путем вызова sys.exit(). Вместе с ним, однако, помирают все процессы, запущенные вышеупомянутым главным процессом, равно как и сам главный процесс, иными словами, вся process group неиллюзорно накрывается медным тазом. Будучи пытаем посредством strace, пайтон признался, что перед смертью вызвал exit_group(1), каковой и убил все процессы в группе, хотя должен был, если верить ману, убить только лишь потоки внутри текущего процесса. Собственно, вот и все обстоятельства, в свете которых я и пребываю в глубоком аху недоумении. Потому как запускать пайтон в своей группе - жирно будет, ну и вообще непонятно, какого хрена он этот exit_group вызывает. Гугль не был мне в помощь. Прежде чем я полезу в сорсы ядра и пайтона, возможно, кто-то с таким сталкивался, и сможет излечить мои печали одним метким словом?...

Апдейт: я идиот, у меня был дурацкий баг: некая переменная неправильно переопределялась в неправильном scope-е. Я все равно не понимаю, почему exit_group() убивает всю группу процессов, но теперь это уже не так важно.

Originally posted on dimrub.vox.com