Sobes.tech
Middle

Linuxта программалар азыр кайсы файлдар менен иштеп жатканын кантип билсе болот?

sobes.tech AI

AIден жооп

Колдонуучу lsof куралын колдонуу (ачык файлдардын тизмеси).

# `lsof` негизги колдонуу, бардык ачык файлдардын тизмесин көрсөтүү
lsof

Белгилүү бир процесстин ачык файлдарынын тизмесин алуу (PID боюнча):

# PID 1234 болгон процесстин ачык файлдарынын тизмесин көрсөтүү
lsof -p 1234

Белгилүү бир команда тарабынан ачык файлдар тизмесин алуу (аты боюнча):

# "nginx" аттуу бардык процесстер үчүн ачык файлдар тизмесин көрсөтүү
lsof -c nginx

Белгилүү бир колдонуучу тарабынан ачык файлдар тизмесин алуу:

# "user1" колдонуучусу үчүн ачык файлдар тизмесин көрсөтүү
lsof -u user1

lsof үчүн кошумча белгилер:

Белги Түшүндүрмө
-i Тармактык байланыштарды (сокеттерди) көрсөтүү
-n IP даректерин хост аттарына которбойт
-P Портторду кызмат аттарына которбойт
-r [N] lsof-ду кайра баштоо N секунд сайын

Кандайдыр бир файлды кайсы процесс колдонуп жатканын аныктоо үчүн мисал:

# /var/log/syslog файлын кайсы процесс колдонуп жатат?
lsof /var/log/syslog

lsof чыгышы төмөнкү колонкаларды камтыйт:

  • COMMAND: Процессти баштаган команда аты.
  • PID: Процесс ID.
  • TID: Тред ID (эгер колдонулса).
  • USER: Процессти баштаган колдонуучу аты.
  • FD: Файл дескриптору.
  • TYPE: Файл түрү (DIR, REG, FIFO, CHR, BLK, SOCK, ж.б.).
  • DEVICE: Жарактык ID.
  • SIZE/OFF: Файлдын өлчөмү же оффсет.
  • NODE: inode саны.
  • NAME: Файлдын аты же тармактык дареги.