Jarang sekali terjadi masalah dengan Linux, tapi itu tidak berarti sistem operasi tersebut kebal terhadap masalah. Kadang-kadang, saya akan menginstal layanan atau aplikasi baru dan kemudian mencoba untuk memulainya dengan perintah:
sudo systemctl start NAMA
Di mana NAMA adalah nama aplikasi atau layanan.
Juga: 5 perintah Linux pertama yang harus dipelajari oleh pengguna baru
Ada beberapa kasus di mana layanan menolak untuk dijalankan atau berjalan dengan benar. Ketika hal tersebut terjadi, ke mana Anda akan beralih? Anda selalu dapat memeriksa file log (biasanya tempat terbaik untuk memulai) atau menggunakan perintah lain yang merupakan rekan dari systemctl. Perintah tersebut adalah journalctl.
Perintah journalctl mengkueri jurnal systemd dan mencantumkan konten jurnal yang mungkin berisi wawasan mengenai mengapa sebuah aplikasi atau layanan tertentu tidak berjalan dengan benar. Seringkali, ketika Anda mencoba untuk memulai sebuah layanan dengan systemctl, jika layanan tersebut tidak dimulai dengan benar (atau sama sekali), Anda akan melihat saran dalam keluaran untuk menggunakan perintah journalctl untuk mengetahui apa yang terjadi.
Biarkan saya menunjukkan kepada Anda bagaimana cara menggunakan perintah ini, sehingga Anda tidak perlu berada dalam kegelapan mengenai mengapa segalanya tidak berjalan sesuai rencana.
Cara menggunakan journalctl
Apa yang Anda butuhkan: Satu-satunya hal yang Anda butuhkan untuk tugas ini adalah distribusi Linux yang menggunakan systemd, yang merupakan sebagian besar distribusi utama.
Hal pertama yang harus Anda coba adalah menjalankan journalctl tanpa opsi apa pun, yang sangat mudah:
journalctl
Apa yang akan Anda lihat adalah seluruh keluaran jurnal systemd. Dari keluaran tersebut, Anda mungkin menemukan informasi yang membantu Anda dalam menyelesaikan masalah Anda.
Ketika saya menjalankan perintah tersebut, hanya ada 41 baris keluaran. Saya pernah melihat kasus di mana ada ratusan baris dalam keluaran, yang membuat penggunaan perintah tanpa argumen atau opsi sedikit tidak membantu.
Juga: 10 aplikasi Linux yang saya instal di setiap mesin baru (dan mengapa Anda juga harus melakukannya)
Untungnya, Anda dapat menyaring sebagian besar kebisingan tersebut.
Misalnya, SSH mengalami masalah saat dimulai. Untuk menyelesaikan masalah ini, Anda dapat menjalankan perintah:
systemctl -u ssh
Dalam kasus ini, -u adalah singkatan dari unit, atau unit systemd tertentu (pikirkan “layanan”).
Juga: Cara membuat titik pemulihan sistem di Linux dengan Timeshift – dan mengapa Anda harus melakukannya
Keluaran dari perintah di atas mungkin terlihat seperti ini:
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)
Seperti yang dapat Anda lihat, dalam kasus saya, SSH berjalan seperti yang diharapkan, tetapi ada percobaan gagal untuk login (yang disebabkan karena saya lupa menambahkan nama pengguna yang valid saat login dari iMac saya).
Ada cara yang lebih baik untuk menyelesaikan masalah layanan dengan journalctl. Katakanlah SSH berjalan tetapi mengalami kesulitan menerima koneksi (atau hampir setiap masalah lain yang bisa terjadi). Anda dapat “mengikuti” keluaran (yang mencetak informasi real-time saat itu terjadi), seperti ini:
journaltcl -xefu ssh
Perintah ini tidak hanya akan memberi tahu Anda status startup dan berjalan dari layanan, tetapi akan mencantumkan entri terbaru yang tercatat dalam jurnal untuk layanan tersebut. Untuk menutup, gunakan pintasan keyboard Ctrl+c. Bagi mereka yang ingin tahu, berikut penjelasan opsi tersebut:
x – tambahkan penjelasan ke baris log dari katalog pesan
e – langsung melompat ke bagian akhir jurnal di dalam alat pager yang diimplikasikan
f – ikuti (terus mencetak entri baru saat mereka tercatat)
u – unit (seperti yang dijelaskan di atas)
Juga mungkin untuk melihat rentang waktu tertentu dengan journalctl. Katakanlah Anda ingin melihat hanya entri yang dicatat mulai Januari 20 pukul 10:00 pagi. Perintahnya akan menjadi:
journalctl –since “2025-01-20 10:00:00”
Anda akan melihat setiap entri yang dicatat dari jam 10:00 pagi hingga waktu sekarang.
Juga: Cara menjaga Linux dioptimalkan (dan menghemat waktu) dengan Stacer
Anda dapat membuat rentang tersebut lebih spesifik. Katakanlah Anda ingin melihat entri yang dicatat dari jam 10:00 pagi hingga 10:10 pagi. Perintahnya akan menjadi:
journalctl –since “2025-01-20 10:00:00” –until “2025-01-20 10:05:00”
Dan itulah, teman-teman, bagaimana Anda dapat menggunakan journalctl untuk menyelesaikan masalah startup aplikasi di Linux.