� � � �<mailto:
minovotn@xxxxxxxxxx <mailto:
minovotn@xxxxxxxxxx>>> wrote:
� � � � � 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);
� � � � � � �exit(sig);
� � � � � }
� � � � � int main()
� � � � � {
� � � � � � �signal(SIGINT, sig_handler);
� � � � � � �signal(SIGKILL, sig_handler);
� � � � � � �sleep(10000);
� � � � � � �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.
� � � � � Michal
� � � � � On 10/04/2010 09:03 PM, Srujan D. Kotikela wrote:
� � � � � � � Hi,
� � � � � � � 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
� � � � � � � � � � �dom=0;
� � � � � � � � � � �remote_dom=2;
� � � � � � � � � � �//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
� � � � � � � � � � �wait_for_event(20);
� � � � � � � � � � �//close the opened interfaces
� � � � � � � � � � �close_channel();
� � � � � � � � � � �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
� � � �
Xen-devel@xxxxxxxxxxxxxxxxxxx
� � � �<mailto:
Xen-devel@xxxxxxxxxxxxxxxxxxx>
� � � �<mailto:
Xen-devel@xxxxxxxxxxxxxxxxxxx
� � � �<mailto:
Xen-devel@xxxxxxxxxxxxxxxxxxx>>
� � � �
http://lists.xensource.com/xen-devel
� � � � � -- � � Michal Novotny<
minovotn@xxxxxxxxxx