Se você quiser reiniciar o sistema agora, não faça mais nada, não se preocupe com outros processos em execução, não se importe com arquivos abertos e chame a chamada de sistema reboot (por exemplo, reboot(2) ). Seria raro nem mesmo chamar sync .
Se você quiser reiniciar o sistema normalmente, deixando o processo algum tempo para sair corretamente, desmontando sistemas de arquivos, etc., chame o utilitário reboot (por exemplo, reboot(8) ).
Se precisar perguntar, o reboot(8) é o correto. A chamada do sistema reboot está lá apenas porque o utilitário reboot precisa ter alguma maneira de dizer "sim, eu terminei, o sistema está praticamente parado, agora restaure o processador".