From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <455447A8.4040609@smap.gov.ua> Date: Fri, 10 Nov 2006 11:34:32 +0200 From: LVU User-Agent: Thunderbird 1.5.0.8 (Windows/20061025) MIME-Version: 1.0 To: ALT Linux Community References: <45531CD1.1040309@stc.donpac.ru> <45532197.1010908@smap.gov.ua> <455440F5.4000702@stc.donpac.ru> In-Reply-To: <455440F5.4000702@stc.donpac.ru> Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit X-Virus-Scanned: amavisd-new at localhost Subject: Re: [Comm] =?koi8-r?b?Q3RybCtDIMkgU0lHSU5U?= X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.9rc1 Precedence: list Reply-To: ALT Linux Community List-Id: ALT Linux Community List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Nov 2006 09:34:51 -0000 Archived-At: List-Archive: List-Post: Здравствуйте! Eugene Prokopiev wrote: >> Убивать надо не 14306, а 14307, именно ему посылается сигнал >> по Ctrl+C. Если же хочется, чтобы можно было убивать по >> pid'у родителя, то в родителе должен быть обработчик соотв. >> сигнала, который рассылает этот сигнал всем процессам группы >> (-pid). > > А что такое "процессы группы"? Можно как-то рассылать сигнал всем > дочерним процессам? Каждый процесс имеет, кроме pid (идентификатор процесса) еще и pgid (идентификатор группы процессов). После запуска каждые процесс имеет своим pgid'ом pid процесса, его породившего. Всем дочерним процессам (но и самому себе тоже!) можно послать сигнал, узнав свой pid и послав сигнал на -pid. Свой pid в шелле = это вроде $$. > Я думал, что можно только узнать идентификатор порожденного процесса > (как сделать это в sh?), сохранить, затем ждать сигнал, перехватить его > и послать сохраненному идентификатору ... Да, так тоже можно, если порожденный процесс 1. Если их много - тоже можно :) но сложнее. pid последнего запущенного - $!, только запускать его надо с &, чтобы не останавливался поток выполнения скрипта на время работы процесса. И потом ждать завершения (ловить SIGCHLD, например). Обработчик сигнала в шелле задается командой trap. With best regards, LVU.