arranges for the system to be brought down in a safe way. All
logged-in users are notified that the system is going down and
init is the parent of all processes on the system, it is executed by the kernel and is responsible for starting all other processes;it is the parent of all processes whose natural parents have died and it is responsible for reaping those when they die.Processes managed by init are known as jobs, and can be further split into two types; services are supervised and respawned if they should terminate unexpectedly, and tasks are simply run once and not respawned if they should terminate.
Basically init 0 change the current run level to run level 0.
shutdown -h can run by any user but init 0 can only run by superuser.
[joy@localhost ~]$ init 0
init: Need to be root