De acordo com answer , reboot
não reinicia imediatamente o sistema, mas tem um procedimento de limpeza que também envia o sinal TERM para todos os processos (consulte o código-fonte vinculado na resposta).
Cabe aos processos receber o sinal para lidar com esse sinal e limpar antes de sair.
Alternativamente, uma alternativa mais suave poderia ser parar o gerenciador de exibição antes da reinicialização:
sudo service lightdm stop
sudo reboot