Prok sistem file adalah fitur penting Linux yang tidak dapat Anda abaikan. prok adalah sistem file semu atau virtual yang menyediakan antarmuka ke struktur data kernel. Dengan kata lain, proc bukan sistem file yang sebenarnya dalam arti dunia nyata; alih-alih, itu hanya berada di memori dan bukan di disk. Itu dipasang secara otomatis oleh sistem.
Sebagian besar kontennya adalah file dan direktori biasa, jadi Anda dapat menggunakan sebagian besar alat Linux biasa untuk menavigasi proc berkas sistem. Contoh dalam artikel ini harus berjalan sama di semua distribusi Linux. Sistem saya menggunakan:
$ cat /etc/redhat-release
Red Hat Enterprise Linux Server rilis 7.8 (Maipo)
$
$ uname -r
3.10.0- 1127.el7.x86_64
$
Penggunaan proc dasar
Untuk mengetahui di mana /proc sistem file berada, jalankan mount perintah dan cari proc . Di sini, Anda dapat melihat proc dipasang di /proc direktori:
$ pasang | grep proc
proc pada /proc ketik proc (rw,nosuid,nodev,noexec,relatime)
systemd-1 pada /proc/sys/fs/binfmt_misc ketik autofs (rw,relatime,fd=26, pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=9506)
nfsd pada /proc/fs/nfsd ketik nfsd (rw,relatime)
binfmt_misc pada /proc/ sys/fs/binfmt_misc ketik binfmt_misc (rw,relatime)
$
Pindah ke /proc direktori dan menjelajahinya. Anda akan melihat banyak direktori dengan angka; angka hanyalah ID proses (PID) untuk proses yang sedang dijalankan. File dengan nama adalah file umum yang berlaku di seluruh sistem dan tidak terkait dengan proses tertentu:
$ cd /proc/
$ pwd
/proc
$ ls
1 157 22827 33 3413 3618 384 4709 512 5571 66 741 798 kunci> 10 15868 23 3340 3414 362 385 4768 513 5581 6723 742 799 880 cpuinfo kunci-pengguna self
101 15900 23323 3341 3415 3622 39 4769 514 56 68 7466 8 891 Crypto Kmsg Slabinfo
1033 16366 346 363 392 4770 515 5637 69 747 80 9 Perangkat Kpagecount Softirqs
104 17 23380 3343 3467 364 394 485 516 5652 7 75 800 906 Diskstats KpageFlags Stat
10416 17580 23383 368 8367 928 DMA loadavg swaps
105 18 23469 3346 349 37 40 4805 518 58 7071 77 839 96 driver kunci sys
106 19 23491 3365 35 37 4 4094 4807 519 59 71 78 840 execomains MDSTAT sysrq-pemicu
107 2 23524 3366 351 375 4096 482 52 6 7193 783 842 9838 fb meminfo sysvipc
11 20767 23527 3383 53 601 72 784 8446 99 filesystems misc timer_list /> 120 21035 27 34 359 379 428 495 54 624 736 79 869 9970 IOMM MTR Uptime
1263 21059 28 3408 36 43 508 5421 625 737 793 87 ACPI IPORTS Versi Net
1265 260 380 44 509 5463 63 738 794 870 buddyinfo ipmi pagetypeinfo vmallocinfo
1272 22 30 3410 3602 381 45 51 5464 636 739 795 874 Bus irq partisi vmstat
13 22055 31 3411 3603 382 46 510 5500 64 74 796 878 Cgroups Kallsyms Sched_Debug ZoneInfo
14 32 3412 361 383 47 511 5519 65 740 797 879 cmdline kcore schedstat
$
Mulailah dengan menjelajahi beberapa file umum di seluruh sistem. Misalnya, /proc/cpuinfo menunjukkan informasi tentang CPU pada sistem—khususnya, merek, model, jumlah inti, kecepatan, flag CPU, dll.:
$ cat /proc/cpuinfo
Demikian pula, /proc/meminfo memberikan informasi tentang memori utama atau RAM pada sistem. Ini juga memberikan statistik tambahan, seperti berapa banyak memori yang digunakan, gratis, dan sebagainya:
$ cat /proc/meminfo
Untuk melihat semua modul kernel yang dimuat, lihat /proc/modules berkas:
$ cat /proc/modules
Untuk melihat semua sistem file yang didukung oleh sistem Anda, lihat /proc/filesystems :
$ cat /proc/filesystems
Selanjutnya, lihat file per-proses; misalnya, systemd , yang memiliki PID 1:
$ ps aux | grep -i systemd | head -1
root 1 0.0 0.0 195976 9088 ? Ss Mar03 0:06 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
$
Pindah ke direktori bernama 1 dalam /proc dan lihat apa yang ada. Ada banyak file yang ada, dan namanya cukup jelas:
$ cd /proc/1
$ pwd
/proc/1
$
$ ls
attr cmdline environ io mem halaman peta tumpukan tugas gid_map maps net oom_score_adj root smaps syscall
$
Untuk mengetahui apakah file-file ini ada untuk setiap proses, pilih ID shell saat ini. Anda bisa mendapatkan informasi itu dengan menjalankan echo $$ . $$ adalah variabel khusus yang menyimpan PID shell saat ini. Buka /proc dan cd ke dalam direktori dengan nomor yang sama dengan PID. File hampir identik dengan file untuk PID 1 atau systemd:
$ echo $$
21059
$
$ cd /proc/21059
$ pwd
/proc/21059
$
$
Attr Cmdline Environ io MEM fdinfo map_files mountstats oom_score projid_map setgroups status wchan
clear_refs cwd gid_map maps root _ >Untuk melihat isi file ini, jalankan proses yang berjalan lama. Buka terminal dan jalankan tty perintah untuk melihat terminal mana yang Anda gunakan. Kemudian ketik kucing perintah dan tekan Enter . Perintah ini akan duduk dan menunggu masukan Anda:
$ tty
/dev/pts/2
$
$ catBuka terminal lain dan temukan PID cat menggunakan pgrep perintah:
$ pgrep cat
24335
$Sekarang, jelajahi file per-proses pertama, cmdline . File ini menunjukkan bagaimana baris perintah dijalankan, jika ada parameter yang digunakan, dll.:
$ cat /proc/24335/cmdline
cat$Selanjutnya, lihat direktori bernama cwd , yang merupakan jenis tautan simbolik (symlink) ke direktori tempat cat perintah dieksekusi; dalam hal ini, yaitu /root :
$ ls -l /proc/24335/cwd
lrwxrwxrwx. 1 root root 0 Mar 4 03:35 /proc/24335/cwd -> /root
$Jika biner dieksekusi dan proses muncul, itu membuka beberapa file secara default. Secara umum, ini membuka standar di (stdin ), standar keluar (stdout ), dan kesalahan standar (stderr ). Jika Anda mencantumkan fd direktori di bawah /proc/ diikuti oleh PID, Anda dapat melihatnya mengembalikan tiga tautan simbolis, semuanya mengarah ke terminal (pts2 ) yang digunakan untuk menjalankan perintah:
$ ls -l /proc/24335/fd/
total 0
lrwx------. 1 root root 64 Mar 4 03:35 0 -> /dev/pts/2
lrwx------. 1 root root 64 Mar 4 03:35 1 -> /dev/pts/2
lrwx------. 1 root root 64 Mar 4 03:35 2 -> /dev/pts/2
$File penting lainnya adalah exe , yang merupakan symlink yang menunjuk ke jalur absolut biner yang dieksekusi. Dalam hal ini, ini adalah jalur kucing perintah:
$ ls -l /proc/24335/exe
lrwxrwxrwx. 1 root root 0 Mar 4 03:35 /proc/24335/exe -> /usr/bin/cat
$Demikian pula, jika Anda kucing lingkungan file per-proses, Anda dapat melihat semua variabel lingkungan yang ditentukan untuk cat proses:
$ cat /proc/24335/environ
File penting dalam proc
Lebih banyak sumber daya Linux
- Lembar contekan perintah Linux
- Lembar contekan perintah Linux tingkat lanjut
- Kursus online gratis:Ikhtisar Teknis RHEL
- Lembar contekan jaringan Linux
- Lembar contekan SELinux
- Lembar contekan perintah umum Linux
- Apa itu container Linux?
- Artikel Linux terbaru kami
Contoh di atas memberikan banyak informasi tentang proses yang berjalan dan sistem Anda secara umum yang dapat membantu dalam proses debug dan pemecahan masalah.
File penting per-proses
Berikut ini adalah file per-proses penting yang harus dicari di /proc/ sistem file:
- /proc/$pid/cmdline Memegang baris perintah lengkap untuk proses
- /proc/$pid/cwd Tautan simbolis ke direktori kerja proses saat ini
- /proc/$pid/environ Berisi lingkungan awal yang disetel saat program dimulai
- /proc/$pid/exe Tautan simbolis ke jalur file yang dieksekusi
- /proc/$pid/fd Subdirektori untuk mendaftar file yang telah dibuka oleh proses
- /proc/$pid/io Berisi statistik I/O untuk proses
- /proc/$pid/limits Menampilkan batas sumber daya proses
- /proc/$pid/maps Saat ini wilayah memori yang dipetakan dan izin akses
- /proc/$pid/stack Jejak pemanggilan fungsi dalam tumpukan kernel proses
- /proc/$pid/stat Informasi status tentang proses
- /proc/$pid/task/ Direktori yang berisi informasi utas
File penting di seluruh sistem
Berikut adalah daftar file umum yang penting (yaitu, tidak khusus untuk proses apa pun):
- /proc/cmdline Argumen diteruskan ke kernel Linux selama waktu boot
- /proc/cpuinfo Informasi terkait CPU
- /proc/meminfo Statistik penggunaan memori
- /proc/filesystems Daftar sistem file yang didukung oleh kernel
- /proc/modules Modul kernel yang sedang dimuat
- /proc/partitions Informasi tentang setiap partisi pada sistem
- /proc/swaps Informasi tentang ruang swap pada sistem
- /proc/self Direktori mengacu pada proses mengakses /proc sistem file
- /proc/slabinfo Informasi tentang cache kernel
- /proc/sys Berbagai file dan sub-direktori tentang variabel kernel
Langkah selanjutnya
Ikhtisar proc . ini filesystem hanya menyentuh pada kemungkinan yang ditawarkannya. Untuk informasi lebih lanjut, periksa proc halaman manual dengan memasukkan man proc perintah atau mengakses versi online halaman manual proc.