Shutdown and Restart
This is based on the @gcharavel's work from !869. I merely split this part out, and added a second commit on top.
This is based on the @gcharavel's work from !869. I merely split this part out, and added a second commit on top.