Try to use logind to poweroff.

Then fall back to ConsoleKit and HAL.

(these are both deprecated software)