ການ ສຳ ຫຼວດ/proc ລະບົບ File ໃນ Linux
ມື້ນີ້, ພວກເຮົາຈະເບິ່ງພາຍໃນ/proc directory ແລະພັດທະນາຄວາມຄຸ້ນເຄີຍກັບມັນ. ໄດເລກະທໍລີ/proc ແມ່ນມີຢູ່ໃນທຸກລະບົບ Linux, ບໍ່ວ່າຈະເປັນລົດຊາດຫລືສະຖາປັດຕະຍະ ກຳ.
ຄວາມເຂົ້າໃຈຜິດອັນ ໜຶ່ງ ທີ່ພວກເຮົາຕ້ອງໄດ້ແຈ້ງຂື້ນໃນທັນທີແມ່ນວ່າໄດເລກະທໍລີ/proc ບໍ່ແມ່ນລະບົບ File ທີ່ແທ້ຈິງ, ໃນຄວາມ ໝາຍ ຂອງ ຄຳ ສັບ. ມັນແມ່ນລະບົບເອກະສານ Virtual. ບັນຈຸຢູ່ພາຍໃນໂຄງການແມ່ນຂໍ້ມູນກ່ຽວກັບຂະບວນການແລະຂໍ້ມູນລະບົບອື່ນໆ. ມັນຖືກວາງແຜນໃສ່/proc ແລະຖືກຕິດຕັ້ງໃນເວລາບູດ.
ຫນ້າທໍາອິດ, ໃຫ້ເຂົ້າໄປໃນໄດເລກະທໍລີ/proc ແລະເບິ່ງປະມານ:
# cd /proc
ສິ່ງ ທຳ ອິດທີ່ທ່ານຈະສັງເກດແມ່ນວ່າມີບາງບ່ອນທີ່ມີສຽງທີ່ຄຸ້ນເຄີຍ, ແລະຫຼັງຈາກນັ້ນມີບັນດາລາຍການທີ່ຖືກນັບ. ບັນດາທິດທາງທີ່ຖືກນັບເປັນຕົວແທນຂອງຂະບວນການ, ເປັນທີ່ຮູ້ຈັກກັນດີວ່າ PIDs, ແລະພາຍໃນພວກມັນ, ຄຳ ສັ່ງທີ່ຄອບຄອງພວກມັນ. ບັນດາເອກະສານບັນຈຸຂໍ້ມູນກ່ຽວກັບລະບົບເຊັ່ນ: ໜ່ວຍ ຄວາມ ຈຳ (meminfo), ຂໍ້ມູນ CPU (cpuinfo), ແລະລະບົບແຟ້ມເອກະສານທີ່ມີ.
ອ່ານອີກ: Linux ຄຳ ສັ່ງຟຣີເພື່ອກວດສອບຄວາມ ຈຳ ທາງກາຍແລະຄວາມ ຈຳ ສັບປ່ຽນ
ລອງເບິ່ງເອກະສານ ໜຶ່ງ ກ່ອນ:
# cat /proc/meminfo
ເຊິ່ງສົ່ງຄືນສິ່ງທີ່ຄ້າຍຄືກັບນີ້:
MemTotal: 604340 kB MemFree: 54240 kB Buffers: 18700 kB Cached: 369020 kB SwapCached: 0 kB Active: 312556 kB Inactive: 164856 kB Active(anon): 89744 kB Inactive(anon): 360 kB Active(file): 222812 kB Inactive(file): 164496 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 89724 kB Mapped: 18012 kB Shmem: 412 kB Slab: 50104 kB SReclaimable: 40224 kB ...
ດັ່ງທີ່ທ່ານສາມາດເຫັນໄດ້,/proc/meminfo ມີຂໍ້ມູນຫຼາຍຢ່າງກ່ຽວກັບຄວາມຊົງ ຈຳ ຂອງລະບົບຂອງທ່ານ, ລວມທັງ ຈຳ ນວນທັງ ໝົດ ທີ່ມີ (ເປັນ kb) ແລະ ຈຳ ນວນເງິນທີ່ບໍ່ເສຍຄ່າໃນສອງສາຍເທິງ.
ການແລ່ນ ຄຳ ສັ່ງແມວໃສ່ທຸກໆເອກະສານທີ່ຢູ່ໃນ/proc ຈະສົ່ງອອກເນື້ອຫາຂອງມັນ. ຂໍ້ມູນກ່ຽວກັບເອກະສານໃດໆກໍ່ມີຢູ່ໃນ ໜ້າ ຜູ້ຊາຍໂດຍການແລ່ນ:
# man 5 /proc/<filename>
ຂ້ອຍຈະໃຫ້ໄຟລ໌/proc ຂອງທ່ານໄວໆນີ້:
<
ບັນດາລາຍຊື່ພາຍໃນ/ບັນຊີລາຍຊື່ຂອງຜະລິດຕະພັນທ່ານຈະພົບກັບເອກະສານແລະລິງ. ຈື່ໄວ້ວ່າຕົວເລກຂອງໄດເລກະທໍລີເຫຼົ່ານີ້ແມ່ນກ່ຽວຂ້ອງກັບ PID ຂອງ ຄຳ ສັ່ງທີ່ ກຳ ລັງ ດຳ ເນີນຢູ່ພາຍໃນພວກມັນ. ໃຫ້ໃຊ້ຕົວຢ່າງ. ໃນລະບົບຂອງຂ້ອຍມີຊື່ໂຟນເດີ/proc/12:
# cd /proc/12 # ls
attr coredump_filter io mounts oom_score_adj smaps wchan autogroup cpuset latency mountstats pagemap stack auxv cwd limits net personality stat cgroup environ loginuid ns root statm clear_refs exe maps numa_maps sched status cmdline fd mem oom_adj schedstat syscall comm fdinfo mountinfo oom_score sessionid task
ຖ້າຂ້ອຍແລ່ນ:
# cat /proc/12/status
ຂ້ອຍໄດ້ຮັບສິ່ງຕໍ່ໄປນີ້:
Name: xenwatch State: S (sleeping) Tgid: 12 Pid: 12 PPid: 2 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 64 Groups: Threads: 1 SigQ: 1/4592 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: ffffffffffffffff SigCgt: 0000000000000000 CapInh: 0000000000000000 CapPrm: ffffffffffffffff CapEff: ffffffffffffffff CapBnd: ffffffffffffffff Cpus_allowed: 1 Cpus_allowed_list: 0 Mems_allowed: 00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 84 nonvoluntary_ctxt_switches: 0
ສະນັ້ນ, ມັນ ໝາຍ ຄວາມວ່າແນວໃດ? ດີ, ສ່ວນທີ່ ສຳ ຄັນແມ່ນຢູ່ເທິງສຸດ. ພວກເຮົາສາມາດເບິ່ງຈາກເອກະສານສະຖານະພາບທີ່ຂະບວນການນີ້ເປັນຂອງ xenwatch. ສະຖານະການປະຈຸບັນຂອງມັນ ກຳ ລັງນອນຫຼັບ, ແລະ ID ຂອງຂະບວນການແມ່ນ 12, ແນ່ນອນ. ພວກເຮົາຍັງສາມາດເຫັນຜູ້ທີ່ ກຳ ລັງ ດຳ ເນີນການນີ້, ເພາະວ່າ UID ແລະ GID ແມ່ນ 0, ເຊິ່ງສະແດງໃຫ້ເຫັນວ່າຂະບວນການນີ້ເປັນຂອງຜູ້ ນຳ ໃຊ້ຮາກ.
ໃນບັນດາໄດເລກະທໍລີທີ່ມີຕົວເລກໃດໆ, ທ່ານຈະມີໂຄງສ້າງແຟ້ມທີ່ຄ້າຍຄືກັນ. ສິ່ງທີ່ ສຳ ຄັນທີ່ສຸດ, ແລະ ຄຳ ອະທິບາຍຂອງມັນແມ່ນດັ່ງຕໍ່ໄປນີ້:
<
ນອກນັ້ນທ່ານຍັງຈະສັງເກດເຫັນຈໍານວນລິ້ງຢູ່ໃນໄດເລກະທໍລີທີ່ມີຕົວເລກ:
<
ສິ່ງນີ້ຄວນເຮັດໃຫ້ທ່ານເລີ່ມຕົ້ນຄຸ້ນເຄີຍກັບໄດເລກະທໍລີ/proc. ມັນຍັງຄວນໃຫ້ຄວາມເຂົ້າໃຈກ່ຽວກັບວິທີການ ຈຳ ນວນ ຄຳ ສັ່ງທີ່ໄດ້ຮັບຂໍ້ມູນຂອງພວກເຂົາ, ເຊັ່ນວ່າເວລາຂຶ້ນ, lsof, mount, ແລະ ps, ພຽງແຕ່ຕັ້ງຊື່ໃຫ້ ຈຳ ນວນ ໜຶ່ງ.