Working with Apache today, I ran into an issue where the process would appear to start OK, returning a zero exit status, yet strace was showing a SIGCHLD being caught.
Needless to say, the server wasn't actually running for any length of time, but I found the following strace command immensely helpful in figuring out the problem.
strace -o /tmp/httpd.strace -ff /usr/sbin/httpd
Because apache spawns a number of children, strace with -ff attaches to each child and recorded the system calls in /tmp/httpd.strace.$PID
As it turns out, I was receiving the following error in the child processes:
bind(5, {sa_family=AF_INET, sin_port=htons(443), sin_addr=inet_addr("0.0.0.0")}, 16) \
= -1 EADDRINUSE (Address already in use)