പശ്ചാത്തലത്തിൽ Linux കമാൻഡ് എങ്ങനെ ആരംഭിക്കാം, ടെർമിനലിൽ പ്രക്രിയ വേർപെടുത്തുക


ഈ ഗൈഡിൽ, ഒരു ലിനക്സ് സിസ്റ്റത്തിൽ പ്രോസസ്സ് കൈകാര്യം ചെയ്യുന്നതിൽ ലളിതവും എന്നാൽ പ്രധാനപ്പെട്ടതുമായ ഒരു ആശയം ഞങ്ങൾ വെളിച്ചത്ത് കൊണ്ടുവരും, അതായത് ഒരു പ്രക്രിയയെ അതിന്റെ നിയന്ത്രണ ടെർമിനലിൽ നിന്ന് എങ്ങനെ പൂർണ്ണമായും വേർപെടുത്താം.

ഒരു പ്രോസസ്സ് ടെർമിനലുമായി ബന്ധപ്പെടുത്തുമ്പോൾ, രണ്ട് പ്രശ്നങ്ങൾ ഉണ്ടാകാം:

  1. നിങ്ങളുടെ നിയന്ത്രണ ടെർമിനലിൽ വളരെയധികം ഔട്ട്uപുട്ട് ഡാറ്റയും പിശക്/ഡയഗ്നോസ്റ്റിക് സന്ദേശങ്ങളും നിറഞ്ഞിരിക്കുന്നു.
  2. ടെർമിനൽ അടച്ച സാഹചര്യത്തിൽ, അതിന്റെ ചൈൽഡ് പ്രോസസുകളോടൊപ്പം പ്രക്രിയയും അവസാനിക്കും.

ഈ രണ്ട് പ്രശ്uനങ്ങൾ കൈകാര്യം ചെയ്യുന്നതിന്, നിങ്ങൾ ഒരു നിയന്ത്രണ ടെർമിനലിൽ നിന്ന് ഒരു പ്രോസസ്സ് പൂർണ്ണമായും വേർപെടുത്തേണ്ടതുണ്ട്. യഥാർത്ഥത്തിൽ പ്രശ്നം പരിഹരിക്കാൻ നീങ്ങുന്നതിന് മുമ്പ്, പശ്ചാത്തലത്തിൽ പ്രക്രിയകൾ എങ്ങനെ പ്രവർത്തിപ്പിക്കാമെന്ന് നമുക്ക് ഹ്രസ്വമായി വിവരിക്കാം.

പശ്ചാത്തലത്തിൽ ഒരു Linux പ്രക്രിയ അല്ലെങ്കിൽ കമാൻഡ് എങ്ങനെ ആരംഭിക്കാം

താഴെയുള്ള ടാർ കമാൻഡ് ഉദാഹരണം പോലെ ഒരു പ്രോസസ്സ് ഇതിനകം തന്നെ നിർവ്വഹിക്കുന്നുണ്ടെങ്കിൽ, അത് നിർത്താൻ Ctrl+Z അമർത്തുക, തുടർന്ന് അതിന്റെ എക്സിക്യൂഷൻ തുടരുന്നതിന് bg കമാൻഡ് നൽകുക. ഒരു ജോലിയായി പശ്ചാത്തലം.

jobs എന്ന് ടൈപ്പ് ചെയ്തുകൊണ്ട് നിങ്ങളുടെ എല്ലാ പശ്ചാത്തല ജോലികളും കാണാൻ കഴിയും. എന്നിരുന്നാലും, അതിന്റെ stdin, stdout, stderr എന്നിവ ഇപ്പോഴും ടെർമിനലുമായി ചേർന്നിരിക്കുന്നു.

$ tar -czf home.tar.gz .
$ bg
$ jobs

ആംപർസാൻഡ്, & ചിഹ്നം ഉപയോഗിച്ച് നിങ്ങൾക്ക് പശ്ചാത്തലത്തിൽ നിന്ന് നേരിട്ട് ഒരു പ്രോസസ്സ് പ്രവർത്തിപ്പിക്കാനും കഴിയും.

$ tar -czf home.tar.gz . &
$ jobs

ചുവടെയുള്ള ഉദാഹരണം നോക്കുക, ടാർ കമാൻഡ് ഒരു പശ്ചാത്തല ജോലിയായി ആരംഭിച്ചെങ്കിലും, ടെർമിനലിലേക്ക് ഒരു പിശക് സന്ദേശം അപ്പോഴും അയച്ചിട്ടുണ്ട്, അതായത് പ്രക്രിയ ഇപ്പോഴും നിയന്ത്രണ ടെർമിനലുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു.

$ tar -czf home.tar.gz . &
$ jobs

ടെർമിനലിൽ നിന്ന് പുറത്തുകടന്നതിന് ശേഷവും ലിനക്സ് പ്രക്രിയകൾ പ്രവർത്തിപ്പിക്കുന്നത് നിലനിർത്തുക

ഞങ്ങൾ നിരസിക്കുക കമാൻഡ് ഉപയോഗിക്കും, ഒരു പ്രോസസ്സ് സമാരംഭിച്ച് പശ്ചാത്തലത്തിൽ ഇട്ടതിന് ശേഷമാണ് ഇത് ഉപയോഗിക്കുന്നത്, ഷെല്ലിന്റെ സജീവ ലിസ്റ്റ് ജോലികളിൽ നിന്ന് ഒരു ഷെൽ ജോലി നീക്കം ചെയ്യുക എന്നതാണ് ഇതിന്റെ ജോലി, അതിനാൽ നിങ്ങൾ fg ഉപയോഗിക്കില്ല. , ആ പ്രത്യേക ജോലിയിൽ ഇനി bg കമാൻഡുകൾ.

കൂടാതെ, നിങ്ങൾ കൺട്രോളിംഗ് ടെർമിനൽ അടയ്uക്കുമ്പോൾ, ജോലി ഹാംഗ് ചെയ്യില്ല അല്ലെങ്കിൽ കുട്ടികളുടെ ജോലികളിലേക്ക് ഒരു SIGHUP അയയ്ക്കില്ല.

ഡിസ്uവോൺ ബാഷ് ബിൽറ്റ്-ഇൻ ഫംഗ്uഷൻ ഉപയോഗിക്കുന്നതിന്റെ ചുവടെയുള്ള ഉദാഹരണം നോക്കാം.

$ sudo rsync Templates/* /var/www/html/files/ &
$ jobs
$ disown  -h  %1
$ jobs

നിങ്ങൾക്ക് nohup കമാൻഡും ഉപയോഗിക്കാം, ഒരു ഉപയോക്താവ് ഒരു ഷെല്ലിൽ നിന്ന് പുറത്തുകടക്കുമ്പോൾ പശ്ചാത്തലത്തിൽ പ്രവർത്തിക്കുന്നത് തുടരാൻ ഒരു പ്രോസസ് പ്രാപ്തമാക്കുകയും ചെയ്യുന്നു.

$ nohup tar -czf iso.tar.gz Templates/* &
$ jobs

കൺട്രോൾ ടെർമിനലിൽ നിന്ന് ഒരു ലിനക്സ് പ്രക്രിയകൾ വേർപെടുത്തുക

അതിനാൽ, ഒരു കൺട്രോളിംഗ് ടെർമിനലിൽ നിന്ന് ഒരു പ്രക്രിയ പൂർണ്ണമായും വേർപെടുത്തുന്നതിന്, താഴെയുള്ള കമാൻഡ് ഫോർമാറ്റ് ഉപയോഗിക്കുക, ഫയർഫോക്സ് പോലുള്ള ഗ്രാഫിക്കൽ യൂസർ ഇന്റർഫേസ് (GUI) ആപ്ലിക്കേഷനുകൾക്ക് ഇത് കൂടുതൽ ഫലപ്രദമാണ്:

$ firefox </dev/null &>/dev/null &

Linux-ൽ, /dev/null എന്നത് ഒരു പ്രത്യേക ഉപകരണ ഫയലാണ്, അതിൽ എഴുതിയിരിക്കുന്ന എല്ലാ ഡാറ്റയും റൈറ്റ്-ഓഫ് (ഒഴിവാക്കുന്നു), മുകളിലെ കമാൻഡിൽ നിന്ന് ഇൻപുട്ട് റീഡ് ചെയ്യുകയും ഔട്ട്uപുട്ട് /dev/null-ലേക്ക് അയയ്ക്കുകയും ചെയ്യുന്നു.

ഒരു കൺട്രോളിംഗ് ടെർമിനലിലേക്ക് ഒരു പ്രോസസ്സ് കണക്uറ്റ് ചെയ്uതിട്ടുണ്ടെങ്കിൽ, ഒരു ഉപയോക്താവെന്ന നിലയിൽ, പ്രോസസ്സ് ഡാറ്റയുടെ നിരവധി ഔട്ട്uപുട്ട് ലൈനുകളും നിങ്ങളുടെ ടെർമിനലിൽ പിശക് സന്ദേശങ്ങളും നിങ്ങൾ കാണും. വീണ്ടും, നിങ്ങൾ ഒരു നിയന്ത്രണ ടെർമിനൽ അടയ്uക്കുമ്പോൾ, നിങ്ങളുടെ പ്രക്രിയയും ചൈൽഡ് പ്രോസസ്സുകളും അവസാനിപ്പിക്കും.

പ്രധാനമായി, വിഷയത്തെക്കുറിച്ചുള്ള എന്തെങ്കിലും ചോദ്യങ്ങൾക്കും അഭിപ്രായങ്ങൾക്കും, ചുവടെയുള്ള അഭിപ്രായ ഫോം ഉപയോഗിച്ച് ഞങ്ങളെ ബന്ധപ്പെടുക.