Међутим, ако се налазите у сировој терминалној љусци, као што је ССХ, често ћете бити забринути због процеса који заузимају и блокирају љуску док се не заврше, посебно на дуготрајним пословима. Ту долази до изражаја концепт процеса позадине и предњег плана.
Овај водич ће расправљати о процесима у позадини и предњем плану, укључујући њихово креирање и управљање у Линуку.
Шта је процес?
Дозволите ми да почнем на основном нивоу: шта је процес?
У Линуксу процес је инстанца програма. Обично то значи да је било која команда или извршна датотека у љусци процес.
Постоје углавном две врсте процеса:
- Процеси у првом плану
- Позадински процеси
Процеси у првом плану су углавном типичне апликације које покрећемо и с њима ступамо у интеракцију. Пример би био управитељ датотека наутилус у Гномеу. У већини случајева процесе у првом плану можемо покренути из љуске или окружења радне површине.
С друге стране, позадински процеси раде у позадини и не захтевају унос или интеракцију од корисника. Пример би био било који типични Линук демон.
Како покренути процес у позадини
Претпоставимо да имамо процес који, док је покренут, заузима сесију љуске и омета нас у извршавању наредби док не изађе.
На пример, ако покренемо Фирефок претраживач у љусци, он ће заузети сесију до завршетка процеса.
$фирефок
Као што видите, све док је Фирефок покренут, одзивник љуске је недоступан и не можемо више да извршавамо команде.
Да бисмо то решили, можемо то учинити на два начина:
1: Коришћење амперсанда (&)
Први метод је коришћење знака & знака. Ово говори љусци да покрене било коју наредбу која претходи амперсанду у позадини.
Пример:
фирефок&
У таквом сценарију, процес се извршава у позадини и покреће се као нова љуска која нам омогућава да наставимо са извршавањем наредби.
Такође даје два нумеричка идентификатора. Први у угластим заградама је Јоб ИД, док је следећи ИД процеса.
2: Помоћу ЦТРЛ + З, бг команда.
Следећи метод који можете користити за стављање процеса у позадину је коришћење пречице ЦТРЛ + З. Ово спречава процес да блокира љуску. Затим можете користити команду бг да бисте је гурнули у позадину.
На пример, почните тако што ћете покренути Фирефок као:
$ФирефокДок је процес у току, притисните ЦТРЛ + З. Ово враћа ваш схелл схелл. На крају, унесите наредбу бг да бисте процес гурнули у позадину.
Како приказати позадинске процесе
За преглед и управљање процесима у позадини, користите наредбу јобс у љусци. То ће приказати позадинске послове у тренутној терминалској сесији.
На пример:
$пословиПример излаза позадинских послова:
Да бисте процес који ради у позадини довели у први план, користите команду фг иза које следи ИД посла.
На пример, да ставимо фирефок посао у први план, користимо команду:
$фг %1
Да бисте поново ставили у позадину, притисните ЦТРЛ + З, а затим наредбу бг.
Како учинити процес постојаним након што шкољка умре
Када покрећете процесе у позадини и ваша сесија љуске се угаси, сви процеси повезани са њом се завршавају, што може бити проблематично, посебно ако се ради о ССХ сесији.
Међутим, ово није превелики проблем ако користите терминални мултиплексер, попут тмука или екрана, јер у том случају једноставно можете поново спојити сесију.
Међутим, ако покренете љуску сесију без мултиплексера, можете користити наредбу нохуп.
Наредба нохуп је имуна на прекид везе и може занемарити сигнал СИГХУП послат процесу.
Дакле, ако покренете наредбу са нохуп -ом, она ће се наставити извршавати чак и ако љуска сесије случајно умре.
На пример, да бисте покренули Фирефок са нохупом, користите команду:
нохупФирефок&Ово ће покренути процес у позадини док се љуска не прекида.
Можете покренути нову терминалску сесију и прегледати позадинске послове. Видећете да процес још увек ради у позадини.
Закључак
У овом водичу смо разговарали о различитим начинима покретања и слања процеса у позадину у Линуку. Такође смо обрадили како да позадински процес доведемо у позадину и наставимо са прекидом везе након завршетка љуске.