Should the app itself really know how to daemonize itself...
Se o seu aplicativo for executado como um daemon, sim, ele deve estar totalmente ciente de como se daemonizar, gravar os arquivos apropriados (o log e o PID se lembram) e manipular o sinal. Grande WTF, se este não for o caso.
Se o seu aplicativo não tiver a intenção de ser daemonizado, ou se não for o propósito primordial, a decisão é sua completamente. Se você quer facilitar para os outros, provavelmente vai adicioná-lo. Se você quiser tornar a vida mais fácil, provavelmente vai deixar de fora. As pessoas geralmente não terão uma resposta "WTF" de qualquer forma.
Service starters...
Cada sistema de pacotes / portas da distribuição deve ser responsável por modificar seus scripts genéricos de iniciar / parar para atender às suas necessidades específicas. Essas coisas geralmente não são ciência de foguetes, mas, em caso de dúvida, contate os mantenedores da distro em que você está trabalhando.
Monitoring tools..
Deve saber como interagir com os mecanismos oficiais de início / parada do Distro, e não deve ter nenhuma idéia de como interagir com seu programa especificamente (a menos que seu programa "publique" dados através de um mecanismo de relatório, possivelmente incluindo ganchos para um serviço SNMP ou similar; tudo isso depende do que seu programa faz).