Как на языке с++ осуществить перезагрузку системы Linux?

Ядро версии 3.10.32. Как вариант, как в принципе запускать bash скрипты или бинарники?


Ответы (1 шт):

Автор решения: sepera_okeq

Функция и макрос полной перезагрузки Linux описан здесь как #define RB_AUTOBOOT 0x01234567. Благодаря glibc вы можете передать константу макроса RB_AUTOBOOT для выполнения перезагрузки.

P.S Учтите, при перезагрузке не происходит сихронизация, поэтому данные могут быть потеряны.

Пример:

#include <unistd.h>
#include <sys/reboot.h>

sync();
reboot(RB_AUTOBOOT);
→ Ссылка