2013-07-27 21 views
10

çıkmasını bekleyin. Tcp sunucumu bash komutumdan başlattığımda, geçerli örnek dinlemeye başlamadan önce önceki örneği (aynı bağlantı noktasını dinliyor olabilir) öldürmem gerekiyor.Bir işlemi sonlandırın ve işlemin

pkill <previous_pid> gibi bir şey kullanabilirim. Doğru şekilde anlarsam, bu yalnızca hedef pid'e SIGTERM gönderir. pkill döndüğünde, hedef işlem hala canlı olabilir. pkill çıkana kadar beklemenin bir yolu var mı? İşlemin tamamlanması için

+1

aynı soruyu yapmak ama Could [unix.se] sitedeki? – Braiam

+0

İşte hizmetler için de çalışan çözümüm: http://pastebin.com/VjpVNdz2. –

+0

Neden bu "konu dışı"? Bu, bash programlama dili ile ilgili bir programlama sorusudur. – h22

cevap

5

Kullanım wait (bash yerleşik) beklemek: Ne yapabilirsiniz

pkill <previous_pid> 
wait <previous_pid> 
+12

bekle "bu kabuğun bir pid değil" dedi, ben ps-p $ nPid iken; uyku 1; yapıldı; ' –

+6

−1:' wait' yalnızca rasgele süreçler değil, _current shell_'in çocuklar için çalışır. Bunun için genel bir yerleşik mekanizma yoktur. –

İlgili konular