I need to handle the event when the shutdown process is started(for example with long press the robot's chest button or when the battery is critically low). The problem is that I didn't find a way to handle the shutdown/poweroff event. Do you have any idea how this can be done in some convenient way?
Unfortunately this won't be possible as when you trigger a shutdown naoqi will exit as well and destroy your service. 
If you are coding in c++ you could use a destructor, but there is no proper equivalent for python... 
An alternative would be to execute some code when your script exits whatever the reason. For this you can start your script as a service and wait for "the end" using qiApplication.run(). This method will simply block until naoqi asks your service to exit. 
Note: in case of shutdown, all services are being killed, so you cannot run any command from the robot API (as they are probably not available anymore!)
How can I handle Pepper robot shutdown event?