This piece of code helped me to find out what signals are being sent to my process:function sig_identify($signo) { switch($signo) { case SIGFPE: return 'SIGFPE'; case SIGSTOP: return 'SIGSTOP'; case SIGHUP: return 'SIGHUP'; case SIGINT: return 'SIGINT'; case SIGQUIT: return 'SIGQUIT'; case SIGILL: return 'SIGILL'; case SIGTRAP: return 'SIGTRAP'; case SIGABRT: return 'SIGABRT'; case SIGIOT: return 'SIGIOT'; case SIGBUS: return 'SIGBUS'; case SIGPOLL: return 'SIGPOLL'; case SIGSYS: return 'SIGSYS'; case SIGCONT: return 'SIGCONT'; case SIGUSR1: return 'SIGUSR1'; case SIGUSR2: return 'SIGUSR2'; case SIGSEGV: return 'SIGSEGV'; case SIGPIPE: return 'SIGPIPE'; case SIGALRM: return 'SIGALRM'; case SIGTERM: return 'SIGTERM'; case SIGSTKFLT: return 'SIGSTKFLT'; case SIGCHLD: return 'SIGCHLD'; case SIGCLD: return 'SIGCLD'; case SIGIO: return 'SIGIO'; case SIGKILL: return 'SIGKILL'; case SIGTSTP: return 'SIGTSTP'; case SIGTTIN: return 'SIGTTIN'; case SIGTTOU: return 'SIGTTOU'; case SIGURG: return 'SIGURG'; case SIGXCPU: return 'SIGXCPU'; case SIGXFSZ: return 'SIGXFSZ'; case SIGVTALRM: return 'SIGVTALRM'; case SIGPROF: return 'SIGPROF'; case SIGWINCH: return 'SIGWINCH'; case SIGPWR: return 'SIGPWR'; }}function sig_handler($signo) { echo "Caught " . sig_identify($signo) . " (" . $signo . ") on " . posix_getpid() . "\n";}pcntl_signal(SIGFPE, "sig_handler");pcntl_signal(SIGHUP, "sig_handler");// pcntl_signal(SIGINT, "sig_handler");pcntl_signal(SIGQUIT, "sig_handler");pcntl_signal(SIGILL, "sig_handler");pcntl_signal(SIGTRAP, "sig_handler");pcntl_signal(SIGABRT, "sig_handler");pcntl_signal(SIGIOT, "sig_handler");pcntl_signal(SIGBUS, "sig_handler");pcntl_signal(SIGPOLL, "sig_handler");pcntl_signal(SIGSYS, "sig_handler");pcntl_signal(SIGCONT, "sig_handler");pcntl_signal(SIGUSR1, "sig_handler");pcntl_signal(SIGUSR2, "sig_handler");pcntl_signal(SIGSEGV, "sig_handler");pcntl_signal(SIGPIPE, "sig_handler");pcntl_signal(SIGALRM, "sig_handler");pcntl_signal(SIGTERM, "sig_handler");pcntl_signal(SIGSTKFLT, "sig_handler");pcntl_signal(SIGCHLD, "sig_handler");pcntl_signal(SIGCLD, "sig_handler");pcntl_signal(SIGIO, "sig_handler");pcntl_signal(SIGTSTP, "sig_handler");pcntl_signal(SIGTTIN, "sig_handler");pcntl_signal(SIGTTOU, "sig_handler");pcntl_signal(SIGURG, "sig_handler");pcntl_signal(SIGXCPU, "sig_handler");pcntl_signal(SIGXFSZ, "sig_handler");pcntl_signal(SIGVTALRM, "sig_handler");pcntl_signal(SIGPROF, "sig_handler");pcntl_signal(SIGWINCH, "sig_handler");pcntl_signal(SIGPWR, "sig_handler");I commented out SIGNIT, as it is the signal which is sent to your process when you press CTRL-C. If you catch this signal, you must handle it properly:function sig_handler($signo) { switch($signo) { case SIGINT: // customized cleanup code exit; // now exit break; }}Otherwise the only possibility to stop your process is by sending a SIGKILL signal - you can do this on the shell by typing "kill -9 PID" (where -9 is the numerical value for SIGKILL).Note: You cannot add a handler (i.e. ignore signals) for SIGSTOP and SIGKILL - for obvious reasons.