If --chdir is specified to s-s-d and that dir does not exist for one reason or another. s-s-d does not fail to start, it continues on, and spits out OK. It is spitting out an error, which in this case is /sbin/start-stop-daemon: Unable to chdir() to /var/tmp/tomcat-6/ (No such file or directory) Since we are capturing stdout/err in a non-standard way that error ends up in /var/log/tomcat-6/catalina.out instead of on the terminal or etc. Either way s-s-d continues on, and spits out OK as if the service started fine. Which IMHO it should not. Granted in this case with redirection of output, it would fail with no message. But at least at that point, users could go look at log files or etc. Knowing it failed to start upfront. See bug 179974 for more info
This is already fixed in baselayout-2. The design of start-daemon-daemon in baselayout-1 does not easily allow a fix for this as the chdir and chroot stuff happens in the child process, which it doesn't track. We could test if the directory existed, but if there was an error changing to it or chrooting to it then the error described here would also happen.