IMHO è semplicemente una questione di privilegi.

Se lo script PHP non viene eseguito con i privilegi adatti (es. di root), difficilmente sarà in grado di avviare la procedura di spegnimento.