Rareori ceva nu merge bine cu Linux, dar asta nu înseamnă că sistemul de operare este imun la probleme. Din când în când, voi instala un serviciu sau o aplicație nouă și apoi voi încerca să o pornesc cu comanda:
sudo systemctl start NAME
NAME este numele aplicației sau al serviciului.
Au existat cazuri în care serviciul să nu pornească sau să funcționeze corect. Când se înâmplă acest lucru, încotro vă îndreptați? Puteți întotdeauna să verificați fișierele jurnal (de obicei cel mai bun loc de unde să începeți) sau să apelați la o altă comandă care însoțește systemctl. Această comandă este journalctl.
Comanda journalctl interoghează jurnalul systemd și listează conținutul unui jurnal care ar putea include informații despre motivul pentru care o anumită aplicație sau un anumit serviciu nu funcționează corect. Adesea, atunci când încercați să porniți un serviciu cu systemctl, dacă serviciul nu pornește corect (sau nu pornește deloc), veți vedea o sugestie în ieșire de a utiliza comanda journalctl pentru a afla ce s-a întâmplat.
Permiteți-mi să vă arăt cum să utilizați această comandă, astfel încât să nu mai fiți nevoiți să nu știți de ce lucrurile nu merg conform planului.
Cum să utilizați journalctl
De ce aveți nevoie: Singurul lucru de care aveți nevoie pentru această sarcină este o distribuție Linux care utilizează systemd, adică majoritatea distribuțiilor majore.
1. Utilizare de bază
Primul lucru pe care ar trebui să-l încercați este să rulați journalctl fără nicio opțiune, ceea ce este simplu:
journalctl
Ceea ce veți vedea este întreaga ieșire a jurnalului systemd. Din această ieșire, ați putea găsi informații care să vă ajute să vă rezolvați problema.
Când am executat comanda, au apărut doar 41 de linii de ieșire. Am văzut cazuri în care au existat sute de linii de ieșire, ceea ce a făcut ca utilizarea comenzii fără argumente sau opțiuni să fie puțin nefolositoare.
Din fericire, puteți filtra o mare parte din acest zgomot.
2. Verificare unui serviciu specific
De exemplu, SSH are probleme la pornire. Pentru a depana această problemă, puteți executa comanda:
systemctl -u ssh
În acest caz, -u înseamnă unit (unitate), sau o unitate systemd specifică (gândiți-vă la „serviciu”).
Rezultatul comenzii de mai sus ar putea arăta cam așa:
Jan 12 09:55:42 pop-os systemd[1]: Starting OpenBSD Secure Shell server...
Jan 12 09:55:42 pop-os sshd[3424]: Server listening on 0.0.0.0 port 22.
Jan 12 09:55:42 pop-os sshd[3424]: Server listening on :: port 22.
Jan 12 09:55:42 pop-os systemd[1]: Started OpenBSD Secure Shell server.
Jan 15 09:39:26 pop-os sshd[659190]: Invalid user jackwallen from 192.168.1.77 port 55040
Jan 15 09:39:29 pop-os sshd[659190]: pam_unix(sshd:auth): check pass; user unknown
Jan 15 09:39:29 pop-os sshd[659190]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.77
Jan 15 09:39:31 pop-os sshd[659190]: Failed password for invalid user jackwallen from 192.168.1.77 port 55040 ssh2
Jan 15 09:39:33 pop-os sshd[659190]: Connection closed by invalid user jackwallen 192.168.1.77 port 55040 [preauth]
Jan 15 09:39:39 pop-os sshd[659232]: Accepted password for jack from 192.168.1.77 port 55049 ssh2
Jan 15 09:39:39 pop-os sshd[659232]: pam_unix(sshd:session): session opened for user jack(uid=1000) by (uid=0)
După cum puteți vedea, în acest caz, SSH rulează conform așteptărilor, dar a existat o încercare eșuată de conectare (deoarece s-a uitat să se adauge un nume de utilizator valid atunci când s-a conecat la iMac).
3. Monitorizarea rezultatului
Există o modalitate și mai bună de a depana un serviciu cu journalctl. Să spunem că SSH rulează, dar are probleme cu acceptarea conexiunilor (sau orice altă problemă care s-ar putea înâmpla). Puteți „urmări” rezultatul (care tipărește informații în timp real pe măsură ce se întâmplă), astfel:
journaltcl -xefu ssh
Această comandă nu numai că vă va spune starea de pornire și de funcționare a serviciului, dar va lista și cele mai recente intrări înregistrare în jurnal pentru serviciul respectiv. Pentru închidere, utilizați comanda rapidă de tastatură Ctrl+c. Pentru cei care doresc să le afle, iată o explicație a opțiunilor:
- x – adăugați o explicație la liniile de jurnal din catalogul de mesaje
- e – săriți imediat la sfârșitul jurnalului în cadrul instrumentului pager implicit
- f – urmărie (tipărirea continuă a noilor intrări pe măsură ce acestea sunt înregistrare)
- u – unitate (așa cum s-a explicat mai sus)
4. Vizualizarea unui interval de timp
De asemenea, este posibil să vizualizați un anumit interval de timp cu journalctl. Să spunem că doriți să vizualizați numai intrările înregistrate începând cu 20 ianuarie la ora 10:00. Comanda ar fi:
journalctl --since "2025-01-20 10:00:00"
Veți vedea fiecare intrare înregistrată de la ora 10:00 până la ora curentă.
Puteți face acest interval și mai specific. Să spunem că doriți să vizualizați intrările înregistrate între orele 10:00 și 10:10. Comanda ar fi:
journalctl --since "2025-01-20 10:00:00" --until "2025-01-20 10:05:00"
Și aceasta, prieteni, este modul în care puteți utiliza journalctl pentru a depana probleme de pornire a aplicațiilor pe Linux.




