From mboxrd@z Thu Jan 1 00:00:00 1970 From: INAKOSHI Hiroya Subject: [PATCH] SIGTERM and SIGINT handler to flush xentop -b outputs Date: Tue, 02 Oct 2007 10:22:16 +0900 Message-ID: <47019D48.5070600@jp.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org # HG changeset patch # User inakoshi.hiroya@jp.fujitsu.com # Date 1191287395 -28800 # Node ID 5543e74774a826b1781893982ed5052312b820fc # Parent 83239b2890723e0c06bad507bb273a970784b18e Flush stdout when xentop -b gets SIGINT and SIGTERM. It is useful when you stop xentop -b by keyboard interrupt or by other programs such as killall from a batch script. You would have missed the bottom part of xentop outputs without this patch. Signed-off-by: INAKOSHI Hiroya diff -r 83239b289072 -r 5543e74774a8 tools/xenstat/xentop/xentop.c --- a/tools/xenstat/xentop/xentop.c Thu Sep 27 16:29:43 2007 -0600 +++ b/tools/xenstat/xentop/xentop.c Tue Oct 02 09:09:55 2007 +0800 @@ -31,6 +31,7 @@ #if defined(__linux__) #include #endif +#include #include @@ -1011,6 +1012,13 @@ static void top(void) free(domains); } + +void a_sig_handler(int n) +{ + fflush(stdout); + exit(0); +} + int main(int argc, char **argv) { int opt, optind = 0; @@ -1102,6 +1110,8 @@ int main(int argc, char **argv) ch = getch(); } while (handle_key(ch)); } else { + signal(SIGTERM, a_sig_handler); + signal(SIGINT, a_sig_handler); do { gettimeofday(&curtime, NULL); top();