ലിനക്സിലെ ഉദാഹരണങ്ങൾക്കൊപ്പം ഫ്യൂസർ കമാൻഡ് എങ്ങനെ ഉപയോഗിക്കാമെന്ന് മനസിലാക്കുക


ലിനക്സ് സിസ്റ്റംസ് അഡ്uമിനിസ്uട്രേഷനിലെ ഏറ്റവും പ്രധാനപ്പെട്ട ദൗത്യങ്ങളിലൊന്ന് പ്രോസസ് മാനേജ്uമെന്റ് ആണ്. സിസ്റ്റത്തിൽ മോണിറ്ററിംഗ്, സിഗ്നലിംഗ് പ്രക്രിയകൾ, പ്രക്രിയകളുടെ മുൻഗണനകൾ എന്നിവയ്ക്ക് കീഴിലുള്ള നിരവധി പ്രവർത്തനങ്ങൾ ഇതിൽ ഉൾപ്പെടുന്നു.

നിരവധി ലിനക്സ് ടൂളുകൾ/യൂട്ടിലിറ്റികൾ മോണിറ്ററിംഗ്/ഹാൻഡിലിംഗ് പ്രോസസുകൾക്കായി രൂപകൽപ്പന ചെയ്തിട്ടുള്ള കില്ലാൾ, നൈസ് കപ്പിൾഡ് മറ്റനേകം.

ഈ ലേഖനത്തിൽ, ഫ്യൂസർ എന്ന വിഭവസമൃദ്ധമായ ലിനക്സ് യൂട്ടിലിറ്റി ഉപയോഗിച്ച് പ്രക്രിയകൾ എങ്ങനെ കണ്ടെത്താമെന്ന് ഞങ്ങൾ കണ്ടെത്തും.

ഫയലുകൾ, ഡയറക്uടറികൾ അല്ലെങ്കിൽ ഒരു പ്രത്യേക പ്രോസസ്സ് ആക്uസസ് ചെയ്യുന്ന സോക്കറ്റ് എന്നിവയെ അടിസ്ഥാനമാക്കിയുള്ള പ്രക്രിയകൾ കണ്ടെത്തുന്നതിന് ഉദ്ദേശിച്ചുള്ള ലളിതവും എന്നാൽ ശക്തവുമായ കമാൻഡ് ലൈൻ യൂട്ടിലിറ്റിയാണ് ഫ്യൂസർ. ചുരുക്കത്തിൽ, ഫയലുകളോ സോക്കറ്റുകളോ ഉപയോഗിച്ച് പ്രക്രിയകൾ തിരിച്ചറിയാൻ ഒരു സിസ്റ്റം ഉപയോക്താവിനെ ഇത് സഹായിക്കുന്നു.

ലിനക്സ് സിസ്റ്റങ്ങളിൽ ഫ്യൂസർ എങ്ങനെ ഉപയോഗിക്കാം

ഫ്യൂസർ ഉപയോഗിക്കുന്നതിനുള്ള പരമ്പരാഗത വാക്യഘടന ഇതാണ്:

# fuser [options] [file|socket]
# fuser [options] -SIGNAL [file|socket]
# fuser -l 

നിങ്ങളുടെ സിസ്റ്റത്തിലെ പ്രക്രിയകൾ കണ്ടെത്തുന്നതിന് ഫ്യൂസർ ഉപയോഗിക്കുന്നതിന്റെ ചില ഉദാഹരണങ്ങൾ ചുവടെയുണ്ട്.

ഒരു ഓപ്uഷനും ഇല്ലാതെ ഫ്യൂസർ കമാൻഡ് പ്രവർത്തിപ്പിക്കുന്നത് നിങ്ങളുടെ നിലവിലെ വർക്കിംഗ് ഡയറക്uടറി ആക്uസസ് ചെയ്യുന്ന പ്രോസസ്സുകളുടെ PID-കൾ പ്രദർശിപ്പിക്കും.

$ fuser .
OR
$ fuser /home/tecmint

കൂടുതൽ വിശദവും വ്യക്തവുമായ ഔട്ട്uപുട്ടിനായി, ഇനിപ്പറയുന്ന രീതിയിൽ -v അല്ലെങ്കിൽ --verbose പ്രവർത്തനക്ഷമമാക്കുക. ഔട്ട്uപുട്ടിൽ, ഫ്യൂസർ നിലവിലെ ഡയറക്uടറിയുടെ പേര്, തുടർന്ന് പ്രോസസ്സ് ഉടമയുടെ (USER), പ്രോസസ്സ് ഐഡി (PID), ആക്uസസ് തരം (ACCESS), കമാൻഡ് (COMMAND) എന്നിവ ചുവടെയുള്ള ചിത്രത്തിൽ പ്രിന്റ് ചെയ്യുന്നു.

$ fuser -v

ആക്uസസ് കോളത്തിന് കീഴിൽ, ഇനിപ്പറയുന്ന അക്ഷരങ്ങൾ സൂചിപ്പിക്കുന്ന ആക്uസസ് തരങ്ങൾ നിങ്ങൾ കാണും:

  1. c – നിലവിലെ ഡയറക്uടറി
  2. e – ഒരു എക്സിക്യൂട്ടബിൾ ഫയൽ റൺ ചെയ്യുന്നു
  3. f – ഫയൽ തുറക്കുക, എന്നിരുന്നാലും, ഔട്ട്പുട്ടിൽ f അവശേഷിക്കുന്നു
  4. F – എഴുതാനുള്ള ഫയൽ തുറക്കുക, F ഔട്ട്പുട്ടിൽ നിന്നും ഒഴിവാക്കിയിരിക്കുന്നു
  5. r – റൂട്ട് ഡയറക്ടറി
  6. m - mmap'ed ഫയൽ അല്ലെങ്കിൽ പങ്കിട്ട ലൈബ്രറി

അടുത്തതായി, നിങ്ങളുടെ ~.bashrc ഫയൽ ആക്സസ് ചെയ്യുന്ന പ്രക്രിയകൾ ഏതൊക്കെയാണെന്ന് നിങ്ങൾക്ക് നിർണ്ണയിക്കാനാകും:

$ fuser -v -m .bashrc

-m NAME അല്ലെങ്കിൽ --mount NAME എന്ന ഓപ്uഷൻ അർത്ഥമാക്കുന്നത് NAME ഫയൽ ആക്uസസ് ചെയ്യുന്ന എല്ലാ പ്രക്രിയകൾക്കും പേര് നൽകുക എന്നാണ്. നിങ്ങൾ NAME എന്ന പേരിൽ ഒരു ഡയറക്uടറി എഴുതുകയാണെങ്കിൽ, ആ ഡയറക്uടറിയിൽ മൌണ്ട് ചെയ്uതിരിക്കുന്ന ഏതെങ്കിലും ഫയൽ സിസ്റ്റം ഉപയോഗിക്കുന്നതിന് അത് സ്വയമേവ NAME/ ആയി മാറ്റപ്പെടും.

ഈ വിഭാഗത്തിൽ ഫ്യൂസർ ഉപയോഗിച്ച് കൊല്ലാനും പ്രോസസ്സുകളിലേക്ക് സിഗ്നലുകൾ അയയ്ക്കാനും ഞങ്ങൾ പ്രവർത്തിക്കും.

ഒരു ഫയലോ സോക്കറ്റോ ആക്uസസ് ചെയ്യുന്ന ഒരു പ്രക്രിയയെ ഇല്ലാതാക്കുന്നതിന്, -k അല്ലെങ്കിൽ --kill എന്ന ഓപ്ഷൻ ഉപയോഗിക്കുക:

$ sudo fuser -k .

ഒരു ഫയലോ സോക്കറ്റോ ആക്uസസ്സുചെയ്യുന്ന പ്രക്രിയകളെ ഇല്ലാതാക്കാനുള്ള നിങ്ങളുടെ ഉദ്ദേശ്യം സ്ഥിരീകരിക്കാൻ നിങ്ങളോട് ആവശ്യപ്പെടുന്ന ഒരു പ്രക്രിയയെ സംവേദനാത്മകമായി ഇല്ലാതാക്കാൻ, -i അല്ലെങ്കിൽ --interactive ഓപ്ഷൻ ഉപയോഗിക്കുക:

$ sudo fuser -ki .

മുമ്പത്തെ രണ്ട് കമാൻഡുകൾ നിങ്ങളുടെ നിലവിലെ ഡയറക്uടറി ആക്uസസ് ചെയ്യുന്ന എല്ലാ പ്രോസസ്സുകളെയും ഇല്ലാതാക്കും, -SIGNAL ഉപയോഗിക്കുമ്പോൾ ഒഴികെ, പ്രോസസ്സുകളിലേക്ക് അയച്ച ഡിഫോൾട്ട് സിഗ്നൽ SIGKILL ആണ്.

ചുവടെയുള്ള -l അല്ലെങ്കിൽ --list-signals ഓപ്ഷനുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് എല്ലാ സിഗ്നലുകളും ലിസ്റ്റ് ചെയ്യാം:

$ sudo fuser --list-signals 

അതിനാൽ, അടുത്ത കമാൻഡിലെന്നപോലെ നിങ്ങൾക്ക് പ്രോസസ്സുകളിലേക്ക് ഒരു സിഗ്നൽ അയയ്uക്കാൻ കഴിയും, മുകളിലുള്ള ഔട്ട്uപുട്ടിൽ ലിസ്uറ്റ് ചെയ്uതിരിക്കുന്ന ഏതെങ്കിലും സിഗ്നലുകളാണ് SIGNAL.

$ sudo fuser -k -SIGNAL

ഉദാഹരണത്തിന്, താഴെയുള്ള ഈ കമാൻഡ് നിങ്ങളുടെ /boot ഡയറക്ടറി തുറന്നിരിക്കുന്ന എല്ലാ പ്രക്രിയകളിലേക്കും HUP സിഗ്നൽ അയയ്ക്കുന്നു.

$ sudo fuser -k -HUP /boot 

വിപുലമായ ഉപയോഗ ഓപ്ഷനുകൾ, കൂടുതൽ വിശദമായ വിവരങ്ങൾ എന്നിവയ്ക്കായി ഫ്യൂസർ മാൻ പേജിലൂടെ വായിക്കാൻ ശ്രമിക്കുക.

ഇപ്പോൾ അത്രയേയുള്ളൂ, നിങ്ങൾക്ക് ആവശ്യമുള്ള ഏത് സഹായത്തിനും അല്ലെങ്കിൽ നിങ്ങൾ ചെയ്യാൻ ആഗ്രഹിക്കുന്ന നിർദ്ദേശങ്ങൾക്കും ചുവടെയുള്ള ഫീഡ്uബാക്ക് വിഭാഗം മുഖേന ഞങ്ങളെ ബന്ധപ്പെടാം.