Linuxలో ప్రాసెస్ కోసం ఓపెన్ ఫైల్‌లను ఎలా జాబితా చేయాలి

ప్రాసెస్ కోసం 'lsof' కమాండ్‌ను ఉపయోగించేందుకు గైడ్

మీరు Linux లేదా Unix సిస్టమ్‌లను తరచుగా ఉపయోగిస్తుంటే, “Linuxలో, ప్రతిదీ ఒక ఫైల్” అనే పదబంధాన్ని మీరు తప్పనిసరిగా విని ఉండాలి. ఇది కాన్సెప్ట్ యొక్క అతి సరళీకరణగా వర్గీకరించబడవచ్చు, అయితే Linux సిస్టమ్‌లోని ఫైల్‌లు ఎలా పనిచేస్తాయో అర్థం చేసుకోవడానికి ఇది చాలా సహాయకారిగా ఉంటుంది.

Linux వాతావరణంలో కనిపించే ప్రతిదీ ఫైల్ కానవసరం లేదు. కొన్నిసార్లు ఇది ఒక ప్రక్రియ కావచ్చు, హార్డ్‌వేర్ సమాచారం, డైరెక్టరీలు మరియు ఇతర విషయాలను సూచించే ప్రత్యేక ఫైల్ కావచ్చు.

ఈ ట్యుటోరియల్ Linuxలో నిర్దిష్ట ప్రక్రియ కోసం తెరిచిన అన్ని ఫైల్‌లను కనుగొనడంలో మిమ్మల్ని నడిపిస్తుంది.

పరిచయంలో lsof ఆదేశం

Linux సిస్టమ్ యొక్క అందం ఏమిటంటే, మీరు టెర్మినల్ ద్వారా మీ మొత్తం సిస్టమ్‌ను నియంత్రించవచ్చు మరియు నిర్వహించవచ్చు, మీకు ఆదేశాల గురించి బాగా తెలుసు. కమాండ్‌లు తెలిసిన తర్వాత టెర్మినల్‌లోని అన్ని టాస్క్‌లు కేక్‌వాక్‌గా మారతాయి.

lsof ఉన్నచో 'ఓపెన్ ఫైల్స్ జాబితా‘. మీరు కమాండ్ యొక్క పొడవైన సంస్కరణను తెలుసుకున్న తర్వాత, మీరు ఆదేశాన్ని ఉత్పాదక మార్గంలో అర్థం చేసుకోవడం మరియు ఉపయోగించడం చాలా సులభం అవుతుంది.

ది lsof కమాండ్ ఓపెన్ ఫైల్స్, సాకెట్లు మరియు పైపుల జాబితాలను ప్రదర్శిస్తుంది. మీరు ఈ ఆదేశాన్ని ఉపయోగించి ఓపెన్ ఫైల్‌ల కోసం సులభంగా శోధించవచ్చు. ఎప్పుడు అయితే lsof కమాండ్ ఏ ఎంపిక లేకుండా ఉపయోగించబడుతుంది, ఇది నడుస్తున్న సక్రియ ప్రక్రియలకు సంబంధించి అన్ని ఓపెన్ ఫైల్‌లను ప్రదర్శిస్తుంది.

గమనిక: మీరు ఉపయోగించారని నిర్ధారించుకోండి సుడో ఆదేశాలను అమలు చేస్తున్నప్పుడు.

ది ఉపయోగించి lsof ఆదేశం

మేము అవుట్‌పుట్‌ను అధ్యయనం చేస్తాము lsof వివరంగా ఆదేశం. కింది ఆదేశాన్ని అధ్యయనం చేయండి.

sudo lsof | తక్కువ

గమనిక: మేము నేరుగా అమలు చేస్తే lsof కమాండ్, అవుట్‌పుట్ చాలా పెద్దదిగా ఉంటుంది మరియు తదుపరి కొనసాగించడానికి గందరగోళాన్ని సృష్టించవచ్చు. కాబట్టి, ఇక్కడ నేను ఉపయోగించాను lsof | తక్కువ ట్యుటోరియల్ సౌలభ్యం కోసం ఆదేశం.

అవుట్‌పుట్:

gaurav@ubuntu:~$ sudo lsof | తక్కువ కమాండ్ PID TID వినియోగదారు FD టైప్ పరికరం పరిమాణం/ఆఫ్ నోడ్ పేరు kdevtmpfs 31 రూట్ cwd DIR 0,6 4400 2 / kdevtmpfs 31 రూట్ rtd DIR 0,6 4400 2 / kdevtmpfs/t31 రూట్ రూట్ 20/31 రూట్ తెలియదు. DIR 8,8 4096 2 / netns 32 రూట్ rtd DIR 8,8 4096 2 / netns 32 రూట్ txt తెలియదు /proc/32/exe rcu_tasks 33 రూట్ cwd DIR 8,8 4096 2 / rcu_8 రూట్‌డి 2 3 DIR_8 69 / rcu_tasks 33 రూట్ txt తెలియదు /proc/33/exe kauditd 34 రూట్ cwd DIR 8,8 4096 2 / kauditd 34 root rtd DIR 8,8 4096 2 / kauditd 34 root txt తెలియదు /proc/34 

ఉపయోగించి ప్రదర్శించబడే లక్షణాలు క్రిందివి lsof ఆదేశం.

పరామితివివరణ
ఆదేశంఫైల్‌ను తెరిచే కమాండ్ పేరును చూపుతుంది.
PIDఫైల్‌ను తెరిచే ప్రక్రియ యొక్క ప్రాసెస్ ఐడెంటిఫైయర్ నంబర్.
TIDథ్రెడ్ ఐడెంటిఫైయర్ నంబర్. ఇది థ్రెడ్ లేదా టాస్క్ నంబర్ కావచ్చు.
వినియోగదారువినియోగదారు ID లేదా ప్రక్రియ యొక్క యజమాని అయిన వినియోగదారు పేరు.
ఎఫ్ డిఫైల్ యొక్క ఫైల్ డిస్క్రిప్టర్‌ను చూపుతుంది.
టైప్ చేయండిఫైల్‌తో అనుబంధించబడిన నోడ్ రకం.
పరికరంపరికర సంఖ్యలను చూపుతుంది.
పరిమాణం/ఆఫ్ఫైల్ పరిమాణాన్ని బైట్‌లలో చూపుతుంది.
నోడ్ఐనోడ్ సంఖ్యను డైరెక్టరీ లేదా పేరెంట్ డైరెక్టరీని చూపుతుంది.
పేరుప్రక్రియ ఉన్న ఫైల్ సిస్టమ్ పేరును చూపుతుంది.

ప్రక్రియలను జాబితా చేయడం

మీరు రన్ అవుతున్న ప్రాసెస్‌లను మరియు వాటి సంబంధిత ప్రాసెస్ IDలను పొందడం కోసం ముందుగా మరియు అన్నిటికంటే ముఖ్యమైనది. PID, వినియోగదారు, డైరెక్టరీ మొదలైన వాటి లక్షణాలతో పాటు ప్రక్రియలను జాబితా చేయడానికి Linux వివిధ రకాల ఆదేశాలను అందిస్తుంది.

వంటి ఆదేశాలను మీరు ఉపయోగించవచ్చు టాప్, ps, htop, pstree టెర్మినల్‌లో ప్రక్రియలను జాబితా చేయడానికి.

ట్యుటోరియల్ అంతటా, నేను దీనిని ఉపయోగిస్తాను టాప్ అలా చేయమని ఆదేశం. ది టాప్ కమాండ్ నడుస్తున్న సిస్టమ్ యొక్క డైనమిక్ నిజ-సమయ వీక్షణను అందిస్తుంది. ఇది ప్రస్తుతం Linux కెర్నల్ ద్వారా నిర్వహించబడుతున్న అన్ని ప్రక్రియలు మరియు థ్రెడ్‌లను కూడా ప్రదర్శిస్తుంది. యొక్క అవుట్‌పుట్‌ని తనిఖీ చేయడానికి దిగువ ఇవ్వబడిన బ్లాక్‌ని అధ్యయనం చేయండి టాప్ ఆదేశం.

సింటాక్స్:

సుడో టాప్

అవుట్‌పుట్:

గౌరవ్ @ ఉబుంటు: ~ $ sudo టాప్ PID USER పిఆర్ NI virt RES SHR S% CPU% MEM TIME + ఆదేశం 2703 గౌరవ్ 20 0 4286124 1.142g 103584 R 88.2 30.5 87: 48,08 వెబ్ కంటెంట్ 1173 mongodb 20 0 288536 6776 3428 S 5.9 0.2 2: 34,41 mongod 13765 గౌరవ్ 20 0 2931568 131408 47496 S 5.9 3.3 1: 42,34 వెబ్ కంటెంట్ 1 రూట్ 20 0 225904 6824 4900 S 0.0 0.2 0: 27.25 systemd 2 రూట్ 20 0 0 0 0 S 0.0 0.0 0: 00,05 kthreadd 4 రూట్ 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H 6 రూట్ 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq 7 root 20 0 0 0 0 S 0.0 0.0 0:00 irqd0 0:08 రూట్ 0 0 I 0.0 0.0 0:22.32 rcu_sched 9 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_bh 10 root rt 0 0 0 0 S 0.0 0.0 0:03.13 migration 

పై బ్లాక్‌లో, ప్రాసెస్‌కి సంబంధించిన మొత్తం సమాచారాన్ని మనం ఒకే చోట చూడవచ్చు. ఇక్కడ నుండి మనం కనుగొనవచ్చు PID మేము ఓపెన్ ఫైల్‌లను ఉపయోగించి ప్రదర్శించాల్సిన ప్రక్రియ lsof ఆదేశం.

కానీ మీరు ఒక నిర్దిష్ట ప్రక్రియ యొక్క ప్రాసెస్ IDని మాత్రమే కనుగొనాలనుకుంటే మరియు ఇతర అవాంఛిత ప్రక్రియలను నివారించాలనుకుంటే, కింది ఆదేశాన్ని ఉపయోగించండి.

సింటాక్స్:

సుడో టాప్ | grep [Process_Name]

ఉదాహరణ:

gaurav@ubuntu:~$ టాప్ | grep టెర్మినల్ 13819 గౌరవ్ 20 0 803336 19728 9160 S 0.3 0.5 0: 53,63 gnome-terminal- 13819 గౌరవ్ 20 0 803336 19728 9160 S 1.0 0.5 0: 53,66 gnome-terminal- 13819 గౌరవ్ 20 0 803336 19728 9160 S 0.3 0.5 0: 53,67 gnome -టెర్మినల్- gaurav@ubuntu:~$

ప్రాసెస్ పేరులో స్ట్రింగ్ 'టెర్మినల్' ఉన్న ప్రాసెస్ యొక్క ప్రాసెస్ IDని ఇక్కడ మేము ప్రత్యేకంగా ప్రదర్శించాము. మీకు పూర్తి ప్రాసెస్ పేరు లేదా PID గురించి తెలియనప్పుడు ఈ పద్ధతి ఉపయోగపడుతుంది.

PIDని ఉపయోగించి ప్రక్రియకు సంబంధించిన ఓపెన్ ఫైల్‌లను ప్రదర్శిస్తోంది

పై బ్లాక్‌లో, టాప్ కమాండ్ సహాయంతో ప్రాసెస్ సంబంధిత సమాచారాన్ని ఎలా పొందాలో నేర్చుకున్నాము. ఇప్పుడు మేము ఉపయోగిస్తాము PID సిస్టమ్‌లోని ఏదైనా ప్రక్రియకు అనుగుణంగా మరియు ఆ ప్రక్రియకు సంబంధించిన ఓపెన్ ఫైల్‌ల జాబితాను ఉపయోగించి ప్రదర్శించడానికి ప్రయత్నించండి lsof ఆదేశం.

పైన ఇచ్చిన అవుట్‌పుట్ నుండి, హైలైట్ చేయబడిన PID 1173కి సంబంధించిన ప్రక్రియను తీసుకుందాం. మేము ఉపయోగిస్తాము lsof -p [PID] అలా చేయమని ఆదేశం.

సింటాక్స్:

sudo lsof -p [PID]

ఈ ఆదేశం ప్రక్రియ యొక్క PIDని ఇన్‌పుట్‌గా తీసుకుంటుంది మరియు ఈ PIDకి సంబంధించిన అన్ని ఫైల్‌లను జాబితా చేస్తుంది.

అవుట్‌పుట్:

gaurav@ubuntu:~$ sudo lsof -p 1173 lsof: హెచ్చరిక: stat() fuse.gvfsd-fuse ఫైల్ సిస్టమ్ /run/user/1000/gvfs అవుట్‌పుట్ సమాచారం అసంపూర్ణంగా ఉండవచ్చు. COMMAND PID వినియోగదారు FD రకం పరికరం పరిమాణం/ఆఫ్ నోడ్ పేరు mongod 1173 mongodb cwd DIR 8,8 4096 2 / mongod 1173 mongodb rtd DIR 8,8 4096 2 / mongod/mongod 837bt 836 1173 mongodb మెమ్ REG 8,8 71776 2624380 /lib/x86_64-linux-gnu/libnss_myhostname.so.2 మంగోడ్ 1173 mongod 1173 mongodb మెమ్ REG 8,8 10776 మెమ్ REG 8,8 26936 2624439 /lib/x86_64-linux-gnu/libnss_dns-2.27.so mongod 1173 mongodb mem REG 8,8 10160 2626002 8,8 47568 262441 lib/x86_64-linux-gnu/libc-2.27.so mongod 1173 mongodb mem REG 8,8 144976 2624627 /lib/x86_64-linux-gnu/libpthread-2.271 mongod 69 x86_64-linux-gnu/libgcc_s.so.1 mongod 1173 mongodb me m REG 8,8 1700792 2622735 /lib/x86_64-linux-gnu/libm-2.27.so mongod 1173 mongodb మెమ్ REG 8,8 14560 2621535 /lib-linu2x14560 2621535 8,8 31680 2624646 /lib/x86_64-linux-gnu/librt-2.27.so mongod 1173 mongodb మెమ్ REG 8,8 2357760 2890079 /usr/lib/lib/x86_60 :~$

ప్రాసెస్ ID 1713తో ప్రాసెస్ కోసం తెరవబడిన ఫైల్‌లు దీన్ని ఉపయోగించి ప్రదర్శించబడతాయి lsof ఆదేశం.

గమనిక: గ్నోమ్ వినియోగదారులు దిగువ హెచ్చరికను ఎదుర్కోవచ్చు. మీరు దానిని సురక్షితంగా విస్మరించవచ్చు.

lsof: హెచ్చరిక: stat() fuse.gvfsd-fuse ఫైల్ సిస్టమ్ /run/user/1000/gvfs అవుట్‌పుట్ సమాచారం అసంపూర్ణంగా ఉండవచ్చు.

ప్రక్రియ పేరును ఉపయోగించి ప్రక్రియకు సంబంధించిన ఓపెన్ ఫైల్‌లను జాబితా చేయడం

ది lsof ప్రక్రియల పేర్లను ఉపయోగించి ఓపెన్ ఫైల్‌లను జాబితా చేయడానికి కమాండ్ మీకు ఒక ఎంపికను కూడా అందిస్తుంది. పేర్లు కమాండ్‌కి ఇన్‌పుట్ స్ట్రింగ్‌గా అందించాలి. ఈ ఎంపికను ఉపయోగించడానికి దిగువ వాక్యనిర్మాణాన్ని చూడండి.

సింటాక్స్:

sudo lsof -c [ప్రాసెస్ పేరు]

ఉదాహరణ:

sudo lsof -c mysql

అవుట్‌పుట్:

gaurav@ubuntu:~$ sudo lsof -c mysql lsof: హెచ్చరిక: stat() fuse.gvfsd-fuse ఫైల్ సిస్టమ్ /run/user/1000/gvfs అవుట్‌పుట్ సమాచారం అసంపూర్ణంగా ఉండవచ్చు. COMMAND PID వినియోగదారు FD రకం పరికరం పరిమాణం/ఆఫ్ నోడ్ పేరు mysqld 1266 mysql cwd DIR 8,8 4096 3154135 /var/lib/mysql mysqld 1266 mysql rtd /mysql mysqld 1266 mysql rtd / 4t 81861 mysql rtd 4098,869 /sbin/mysqld mysqld 1266 mysql mem REG 8,8 6288 5505444 /usr/lib/mysql/plugin/auth_socket.so mysqld 1266 mysql DEL REG 0,18 REG 0,18 REG aio] mysqld 1266 mysql DEL REG 0,18 28125 /[aio] mysqld 1266 mysql mem REG 8,8 47568 2624441 /lib/x86_64-linux-gnu/libnss2 /lib/x86_64-linux-gnu/libnss2 lib/x86_64-linux-gnu/libnss_nis-2.27.so mysqld 1266 mysql mem REG 8,8 39744 2624438 /lib/x86_64-linux-gnu/libnss_compat-2.27. 

ప్రాసెస్ పేరుకు బదులుగా ప్రాసెస్ ID ఉపయోగించబడే అవుట్‌పుట్ వలె ఉంటుంది.

నెట్‌వర్క్ కనెక్షన్‌ల ద్వారా తెరవబడిన ఫైల్‌ల జాబితా

Linuxలో, ఫైల్‌లు మీ నెట్‌వర్క్ కనెక్షన్‌లు, హార్డ్‌వేర్ కనెక్షన్‌లు మొదలైన వాటి గురించిన సమాచారం రూపంలో కూడా ఉండవచ్చు. మేము ఉపయోగించవచ్చు lsof నెట్‌వర్క్ కనెక్షన్ ద్వారా తెరవబడిన ఫైల్‌లను జాబితా చేయడానికి ఆదేశం. కింది పద్ధతిని ఉపయోగించండి.

sudo lsof -i

అవుట్‌పుట్:

gaurav@ubuntu:~$ sudo lsof -i కమాండ్ PID వినియోగదారు FD టైప్ పరికరం పరిమాణం/ఆఫ్ నోడ్ పేరు systemd-r 969 systemd-రిసల్వ్ 12u IPv4 17357 0t0 UDP లోకల్ హోస్ట్:డొమైన్ systemd-r37tho 960 డొమైన్ (వినండి) systemd-r 969 systemd-resolve 15u IPv4 1685575 0t0 UDP ఉబుంటు:48090->_గేట్‌వే:డొమైన్ avahi-dae 1028 avahi 12u IPv4 23810 23810 UIP30d1 avahi-రోజుల 1028 avahi 14u IPv4 23812 0t0 UDP *: 58999 avahi-రోజుల 1028 avahi 15u IPv6 23813 0t0 UDP *: 37512 mongod 1173 mongodb 6u IPv4 28149 0t0 TCP localhost: 27017 (వినండి) mysqld 1266 mysql 19u IPv4 25992 0t0 TCP localhost: mysql (వినండి) apache2 1283 root 4u IPv6 28140 0t0 TCP *:http (వినండి) gaurav@ubuntu:~$

నెట్‌వర్క్ కనెక్షన్ ద్వారా తెరవబడిన ఫైల్‌ల గురించిన సమాచారాన్ని మనం ఇక్కడ చూడవచ్చు lsof -i ఆదేశం.

ముగింపు

ఈ సాధారణ ట్యుటోరియల్‌లో, ఉపయోగించడానికి సులభమైన వివిధ పద్ధతులను ఉపయోగించి Linuxలో ప్రక్రియ కోసం ఓపెన్ ఫైల్‌లను ఎలా జాబితా చేయాలో నేర్చుకున్నాము. యొక్క మరిన్ని ఉపయోగాలు కోసం lsof ఆదేశం, చూడండి lsof మనిషి పేజీ.