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: Файлдын аты же тармактык дареги.