reboot(2)

NUME
reboot - repornește sau activează/dezactivează Ctrl-Alt-Del

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
/* Începând cu Linux 2.1.30 există nume simbolice LINUX_REBOOT_*
   pentru constante și un al patrulea argument pentru apel: */

#include <linux/reboot.h>  /* Definiția constantelor LINUX_REBOOT_* */
#include <sys/syscall.h>   /* Definiția constantelor SYS_* */
#include <unistd.h>

int syscall(SYS_reboot, int magic, int magic2, int op, void *arg);

/* Sub glibc și majoritatea bibliotecilor alternative (inclusiv uclibc, dietlibc,
   musl și alte câteva), unele dintre constantele implicate au devenit
   nume simbolice RB_*, iar apelul de bibliotecă este un apel cu
   1 argument în jurul apelului de sistem: */

#include <sys/reboot.h>    /* Definiția constantelor RB_* */
#include <unistd.h>

int reboot(int op);

DESCRIERE
Apelul reboot() repornește sistemul sau activează/dezactivează apăsarea combinația tastelor de repornire (abreviată CAD, deoarece valoarea implicită este Ctrl-Alt-Delete; aceasta poate fi schimbată cu ajutorul comenzii loadkeys(1)).

Acest apel de sistem eșuează (cu eroarea EINVAL) dacă magic nu este egal cu LINUX_REBOOT_MAGIC1 (adică 0xfee1dead) și magic2 nu este egal cu LINUX_REBOOT_MAGIC2 (adică 0x28121969). Cu toate acestea, începând cu Linux 2.1.17, și LINUX_REBOOT_MAGIC2A (adică 0x05121996) și începând cu Linux 2.1.97 și LINUX_REBOOT_MAGIC2B (adică 0x16041998) și începând cu Linux 2.5.71 și LINUX_REBOOT_MAGIC2C (adică 0x20112000) sunt permise ca valori pentru magic2; (valorile hexazecimale ale acestor constante sunt semnificative).

Argumentul op poate avea următoarele valori:

LINUX_REBOOT_CMD_CAD_OFF
    (RB_DISABLE_CAD, 0). CAD este dezactivată. Aceasta înseamnă că apăsarea combinației tastelor CAD va determina trimiterea unui semnal SIGINT către init (procesul 1), după care acest proces poate decide asupra unei acțiuni adecvate (ce poate fi: omorârea tuturor proceselor, sincronizare, repornire).

LINUX_REBOOT_CMD_CAD_ON
    (RB_ENABLE_CAD, 0x89abcdef). CAD este activată. Aceasta înseamnă că apăsarea combinației tastelor CAD va determina imediat acțiunea asociată cu LINUX_REBOOT_CMD_RESTART.

LINUX_REBOOT_CMD_HALT
    (RB_HALT_SYSTEM, 0xcdef0123; începând cu Linux 1.1.76). Se afișează mesajul „System halted.” (Sistemul se oprește.), iar sistemul este oprit. Controlul este dat monitorului ROM, dacă există unul. Dacă nu este precedat de un sync(2), datele vor fi pierdute.

LINUX_REBOOT_CMD_KEXEC
    (RB_KEXEC, 0x45584543, începând cu Linux 2.6.13). Execută un nucleu care a fost încărcat anterior cu kexec_load(2). Această opțiune este disponibilă numai dacă nucleul a fost configurat cu CONFIG_KEXEC.

LINUX_REBOOT_CMD_POWER_OFF
    (RB_POWER_OFF, 0x4321fedc; de la Linux 2.1.30). Se afișează mesajul „Power down.” (Se întrerupe alimentarea cu energie.), sistemul este oprit și, dacă este posibil, se întrerupe toată alimentarea cu energie electrică a sistemului. Dacă nu este precedat de un sync(2), datele vor fi pierdute.

LINUX_REBOOT_CMD_RESTART
    (RB_AUTOBOOT, 0x1234567). Se afișează mesajul „Restarting system.” (Se repornește sistemul.) și se efectuează imediat o repornire implicită. Dacă nu este precedat de un sync(2), datele vor fi pierdute.

LINUX_REBOOT_CMD_RESTART2
    (0xa1b2c3d4; de la Linux 2.1.30). Se afișează mesajul „Restarting system with command '%s'” (Se repornește sistemul cu comanda «%s»), iar repornirea (folosind șirul de comenzi dat în arg) este efectuată imediat. Dacă nu este precedat de un sync(2), datele vor fi pierdute.

LINUX_REBOOT_CMD_SW_SUSPEND
    (RB_SW_SUSPEND, 0xd000fce1; începând cu Linux 2.5.18). Sistemul este suspendat (hibernat) pe disc. Această opțiune este disponibilă numai dacă nucleul a fost configurat cu CONFIG_HIBERNATION.

Numai superutilizatorul poate apela reboot().

Efectul exact al acțiunilor de mai sus depinde de arhitectură. Pentru arhitectura i386, argumentul suplimentar nu face nimic în prezent (2.1.122), dar tipul de repornire poate fi determinat prin argumentele din linia de comandă a nucleului („reboot=...”) pentru a fi fie repornire la „cald”, fie repornire la „rece” sau fie prin hardware (butonul de reinițializare), fie prin BIOS.

  Comportament în interiorul spațiilor de nume PID
Începând cu Linux 3.4, dacă reboot() este apelat de la un spațiu de nume PID, altul decât spațiul de nume PID inițial cu una dintre valorile op enumerate mai jos, acesta efectuează o „repornire” a acelui spațiu de nume: procesul „init” al spațiului de nume PID este imediat încheiat, cu efectele descrise în pid_namespaces(7).

Valorile care pot fi furnizate în op atunci când se apelează reboot() în acest caz sunt următoarele:

LINUX_REBOOT_CMD_RESTART
LINUX_REBOOT_CMD_RESTART2
    Procesul „init” se termină, iar wait(2) din procesul părinte raportează că procesul-copil a fost omorât cu un semnal SIGHUP.

LINUX_REBOOT_CMD_POWER_OFF
LINUX_REBOOT_CMD_HALT
    Procesul „init” se termină, iar wait(2) din procesul părinte raportează că procesul-copil a fost omorât cu un semnal SIGINT.

Pentru celelalte valori op, reboot() returnează -1, iar errno este configurată la EINVAL.

VALOAREA RETURNATĂ
Pentru valorile lui op care opresc sau repornesc sistemul, un apel reușit la reboot() nu se returnează. Pentru celelalte valori op, se returnează zero în caz de succes. În toate cazurile, în caz de eșec, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

EFAULT
    Problemă cu obținerea datelor din spațiul utilizatorului sub LINUX_REBOOT_CMD_RESTART2.

EINVAL
    Numere magice greșite sau valoare greșită a op.

EPERM
    Procesul apelant nu are privilegii suficiente pentru a apela reboot(); apelantul trebuie să aibă CAP_SYS_BOOT în spațiul său de nume de utilizator.

STANDARDE
Linux.

CONSULTAȚI ȘI
systemctl(1), systemd(1), kexec_load(2), sync(2), bootparam(7), capabilities(7), ctrlaltdel(8), halt(8), shutdown(8)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.