This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] capturing SIGKILL in DomU

To: "Srujan D. Kotikela" <ksrujandas@xxxxxxxxx>
Subject: Re: [Xen-devel] capturing SIGKILL in DomU
From: Michal Novotny <minovotn@xxxxxxxxxx>
Date: Tue, 05 Oct 2010 10:36:44 +0200
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Tue, 05 Oct 2010 01:37:23 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <AANLkTi=0bFWS0zOrD49b5iDaG3y7K_90UBCOJ+RieUvj@xxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <AANLkTi=0bFWS0zOrD49b5iDaG3y7K_90UBCOJ+RieUvj@xxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/20100430 Fedora/3.0.4-3.fc13 Thunderbird/3.0.4
Hi Srujan,
what about adding a signal handler to qemu-dm in the tools/ioemu-dir of the user-space tools? Using the signal() API? Nevertheless why would you like to catch SIGKILL? This one (as can be seen using included program source and killing it using kill -9 pid or kill -SIGKILL pid) is not being caught at all nevertheless most of the other signals can be caught.

This is the source of the example mentioned:
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>

void sig_handler(int sig) {
    fprintf(stderr, "Signal %d caught.\n", sig);

int main()
    signal(SIGINT, sig_handler);
    signal(SIGKILL, sig_handler);

    return 0;

When I did try SIGINT (Ctrl + C or kill -2 pid) it caught the signal well but when I did try kill -9 pid (or kill -SIGKILL pid respectively) it was not working at all since it killed the process instead of going to the signal handler. When you need to catch signals like interruption signal (Ctrl + C one) this will work fine.


On 10/04/2010 09:03 PM, Srujan D. Kotikela wrote:

I am trying to capture SIGKILL through event channel.

On my Dom0, the following process is running (remaining code in attachment).

    int main(void){

        int ret, dom, remote_dom;

        //initialize domains

        //create the event channel
        ret = create_channel(dom, remote_dom);

        if (0 == ret) {
            printf("\n Event Channel established successfully \n");
        } else {
            return -1;    //EVENT_CHANNEL_CREATION_FAILED

        //wait 20 seconds for an event to occur in DomU

        //close the opened interfaces

        return 0;


While this process is running; I killed a process in DomU using `*kill SIGKILL pid*`

How can I capture this event (occured in DomU) at the Dom0. I watched /dev/xen/evtchn, but no notification.

Srujan D. Kotikela

Xen-devel mailing list

Michal Novotny<minovotn@xxxxxxxxxx>, RHCE
Virtualization Team (xen userspace), Red Hat

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>