According to this link, it said
Upstart is one of the best options for running traditional forking daemons, since it actually uses ptrace to make sure it's watching the correct process ids.
Now consider the case of Apache httpd running in pre-fork mode, can anyone explain why using Upstart is better than the traditional init script's pid file approach?