So, many people agree that stopping daemons in the preinst and restarting them in the postinst is not ideal, because the services have to be offline for the entire length of the upgrade. One can then simply restart the service in the postinst. The problem is if one uses the --exec option of start-stop-daemon when stopping the process, as the inode numbers will no longer match, as the binary has been upgraded. The same problem happens with a system that has prelinked the binaries since the last time the server was restarted. The stop script will always say that nothing is running. This can be a big problem if a commonly used system library has a security hole (say zlib), and you want to restart all of your daemons so that the new, fixed version is being used. But the init scripts all claim that your daemons aren't running...