Normally CMDaemon restarts a service that fails.
However, one of the possibilities is that CMD has given up due to persistent failure. In the Administrator Manual, the section on managing and configuring services (in the chapter on Configuring the Cluster) explains:
The reset option is not a service option in the regular shell, but is
used by CMDaemon (cmsh and cmgui) to clear a Failed state of a service
as seen by the monitoring system.
The monitoring system sets the state of a service to Failed if 10 restarts
of the service in a row fail. CMDaemon then no longer attempts to restart
the service until the reset option is executed.
So, what may be needed is that the service be told to reset. For example[head->device[head]->services]% status ntpd
ntpd [ DOWN ]
or
ntpd [FAILING ]
(after 10 failed restart attempts the health check ManagedServicesOK then shows: [ FAIL ])
[head->device[head]->services]% reset ntpd
[head->device[head]->services]% start ntpd
[head->device[head]->services]% status ntpd
ntpd [ UP ]