Linux все дочерние процессы

рТПГЕУУЩ

лБЛ ХЦЕ ХРПНЙОБМПУШ Ч МЕЛГЙЙ уЕБОУ ТБВПФЩ Ч Linux, ЪБЗТХЪЛБ Linux ЪБЧЕТЫБЕФУС ФЕН, ЮФП ОБ ЧУЕИ ЧЙТФХБМШОЩИ ЛПОУПМСИ (ОБ УБНПН ДЕМЕ — ОБ ЧУЕИ ФЕТНЙОБМБИ УЙУФЕНЩ), РТЕДОБЪОБЮЕООЩИ ДМС ТБВПФЩ РПМШЪПЧБФЕМЕК, ЪБРХУЛБЕФУС РТПЗТБННБ getty . рТПЗТБННБ ЧЩЧПДЙФ РТЙЗМБЫЕОЙЕ Й ПЦЙДБЕФ БЛФЙЧОПУФЙ РПМШЪПЧБФЕМС, ЛПФПТЩК НПЦЕФ ЪБИПФЕФШ ТБВПФБФШ ЙНЕООП ОБ ЬФПН ФЕТНЙОБМЕ. чЧЕДЈООПЕ ЧИПДОПЕ ЙНС getty РЕТЕДБЈФ РТПЗТБННЕ login , ЛПФПТБС ЧЧПДЙФ РБТПМШ Й ПРТЕДЕМСЕФ, ТБЪТЕЫЕОП МЙ ТБВПФБФШ Ч УЙУФЕНЕ У ЬФЙН ЧИПДОЩН ЙНЕОЕН Й ЬФЙН РБТПМЕН. еУМЙ login РТЙИПДЙФ Л ЧЩЧПДХ, ЮФП ТБВПФБФШ НПЦОП, ПО ЪБРХУЛБЕФ УФБТФПЧЩК ЛПНБОДОЩК ЙОФЕТРТЕФБФПТ, РПУТЕДУФЧПН ЛПФПТПЗП РПМШЪПЧБФЕМШ Й ЛПНБОДХЕФ УЙУФЕНПК.

чЩРПМОСАЭБСУС РТПЗТБННБ ОБЪЩЧБЕФУС Ч Linux РТПГЕУУПН. чУЕ РТПГЕУУЩ УЙУФЕНБ ТЕЗЙУФТЙТХЕФ Ч ФБВМЙГЕ РТПГЕУУПЧ, РТЙУЧБЙЧБС ЛБЦДПНХ ХОЙЛБМШОЩК ОПНЕТ — ЙДЕОФЙЖЙЛБФПТ РТПГЕУУБ (process identificator, PID). нБОЙРХМЙТХС РТПГЕУУБНЙ, УЙУФЕНБ ЙНЕЕФ ДЕМП ЙНЕООП У ЙИ ЙДЕОФЙЖЙЛБФПТБНЙ, ДТХЗПЗП УРПУПВБ ПФМЙЮЙФШ ПДЙО РТПГЕУУ ПФ ДТХЗПЗП, РП ВПМШЫПНХ УЮЈФХ, ОЕФ. дМС РТПУНПФТБ УЧПЙИ РТПГЕУУПЧ НПЦОП ЧПУРПМШЪПЧБФШУС ХФЙМЙФПК ps («process status»):

ъБРХУЛ ДПЮЕТОЙИ РТПГЕУУПЧ

ъБРХУЛ ПДОПЗП РТПГЕУУБ ЧНЕУФП ДТХЗПЗП ХУФТПЕО Ч Linux У РПНПЭША УЙУФЕНОПЗП ЧЩЪПЧБ exec() . уФБТЩК РТПГЕУУ ЙЪ РБНСФЙ ХДБМСЕФУС ОБЧУЕЗДБ, ЧНЕУФП ОЕЗП ЪБЗТХЦБЕФУС ОПЧЩК, РТЙ ЬФПН ОБУФТПКЛБ ПЛТХЦЕОЙС ОЕ НЕОСЕФУС, ДБЦЕ PID ПУФБЈФУС РТЕЦОЙН. чЕТОХФШУС Л ЧЩРПМОЕОЙА УФБТПЗП РТПГЕУУБ ОЕЧПЪНПЦОП, ТБЪЧЕ ЮФП ЪБРХУФЙФШ ЕЗП РП ОПЧПК У РПНПЭША ФПЗП ЦЕ exec() (ПФ «execute» — «ЙУРПМОЙФШ»). лУФБФЙ, ЙНС ЖБКМБ (РТПЗТБННЩ), ЙЪ ЛПФПТПЗП ЪБРХУЛБЕФУС РТПГЕУУ, Й УПВУФЧЕООПЕ ЙНС РТПГЕУУБ (Ч ФБВМЙГЕ РТПГЕУУПЧ) НПЗХФ Й ОЕ УПЧРБДБФШ. уПВУФЧЕООПЕ ЙНС РТПГЕУУБ — ЬФП ФБЛПК ЦЕ РБТБНЕФТ ЛПНБОДОПК УФТПЛЙ, ЛБЛ Й ФЕ, ЮФП РЕТЕДБАФУС ЕНХ РПМШЪПЧБФЕМЕН: ДМС exec() ФТЕВХЕФУС Й РХФШ Л ЖБКМХ, Й РПМОБС ЛПНБОДОБС УФТПЛБ, ОХМЕЧПК (УФБТФПЧЩК) ЬМЕНЕОФ ЛПФПТПК — ЛБЛ ТБЪ ОБЪЧБОЙЕ ЛПНБОДЩ

дМС ТБВПФЩ ЛПНБОДОПЗП ЙОФЕТРТЕФБФПТБ ОЕДПУФБФПЮОП ПДОПЗП exec() . ч УБНПН ДЕМЕ, shell ОЕ РТПУФП ЪБРХУЛБЕФ ХФЙМЙФХ, Б ДПЦЙДБЕФУС ЕЈ ЪБЧЕТЫЕОЙС, ПВТБВБФЩЧБЕФ ТЕЪХМШФБФЩ ЕЈ ТБВПФЩ Й РТПДПМЦБЕФ ДЙБМПЗ У РПМШЪПЧБФЕМЕН. дМС ЬФПЗП Ч Linux УМХЦЙФ УЙУФЕНОЩК ЧЩЪПЧ fork() («ЧЙМЛБ, ТБЪЧЙМЛБ»), РТЙНЕОЕОЙЕ ЛПФПТПЗП РТЙЧПДЙФ Л ЧПЪОЙЛОПЧЕОЙА ЕЭЈ ПДОПЗП, ДПЮЕТОЕЗП, РТПГЕУУБ — ФПЮОПК ЛПРЙЙ РПТПДЙЧЫЕЗП ЕЗП ТПДЙФЕМШУЛПЗП. дПЮЕТОЙК РТПГЕУУ ОЙЮЕН ОЕ ПФМЙЮБЕФУС ПФ ТПДЙФЕМШУЛПЗП: ЙНЕЕФ ФБЛПЕ ЦЕ ПЛТХЦЕОЙЕ, ФЕ ЦЕ УФБОДБТФОЩК ЧЧПД Й УФБОДБТФОЩК ЧЩЧПД, ПДЙОБЛПЧПЕ УПДЕТЦЙНПЕ РБНСФЙ Й РТПДПМЦБЕФ ТБВПФХ У ФПК ЦЕ УБНПК ФПЮЛЙ (ЧПЪЧТБФ ЙЪ fork() ). пФМЙЮЙС ДЧБ: ЧП-РЕТЧЩИ, ЬФЙ РТПГЕУУЩ ЙНЕАФ ТБЪОЩЕ PID, РПД ЛПФПТЩНЙ ПОЙ ЪБТЕЗЙУФТЙТПЧБОЩ Ч ФБВМЙГЕ РТПГЕУУПЧ, Б ЧП-ЧФПТЩИ, ТБЪМЙЮБЕФУС ЧПЪЧТБЭБЕНПЕ ЪОБЮЕОЙЕ fork() : ТПДЙФЕМШУЛЙК РТПГЕУУ РПМХЮБЕФ Ч ЛБЮЕУФЧЕ ТЕЪХМШФБФБ fork() ЙДЕОФЙЖЙЛБФПТ РТПГЕУУБ-РПФПНЛБ, Б РТПГЕУУ-РПФПНПЛ РПМХЮБЕФ “ 0 ”.

дБМШОЕКЫЙЕ ДЕКУФЧЙС shell РТЙ ЪБРХУЛЕ ЛБЛПК-МЙВП РТПЗТБННЩ ПЮЕЧЙДОЩ. Shell-РПФПНПЛ ОЕНЕДМЕООП ЧЩЪЩЧБЕФ ЬФХ РТПЗТБННХ У РПНПЭША exec() , Б shell-ТПДЙФЕМШ ДПЦЙДБЕФУС ЪБЧЕТЫЕОЙС ТБВПФЩ РТПГЕУУБ-РПФПНЛБ (PID ЛПФПТПЗП ЕНХ ЙЪЧЕУФЕО) У РПНПЭША ЕЭЈ ПДОПЗП УЙУФЕНОПЗП ЧЩЪПЧБ, wait() . дПЦДБЧЫЙУШ Й РТПБОБМЙЪЙТПЧБЧ ТЕЪХМШФБФ ЛПНБОДЩ, shell РТПДПМЦБЕФ ТБВПФХ.

еУМЙ ВЩ Ч ПРЙУБООПК ЧЩЫЕ УЙФХБГЙЙ ТПДЙФЕМШУЛЙК РТПГЕУУ ОЕ ЦДБМ, РПЛБ ДПЮЕТОЙК ЪБЧЕТЫЙФУС, Б УТБЪХ РТПДПМЦБМ ТБВПФБФШ, РПМХЮЙМПУШ ВЩ, ЮФП ПВБ РТПГЕУУБ ЧЩРПМОСАФУС «РБТБММЕМШОП»: РПЛБ ЪБРХЭЕООЩК РТПГЕУУ ЮФП-ФП ДЕМБЕФ, РПМШЪПЧБФЕМШ РТПДПМЦБЕФ ЛПНБОДПЧБФШ ПВПМПЮЛПК. дМС ФПЗП, ЮФПВЩ ЪБРХУФЙФШ РТПГЕУУ РБТБММЕМШОП, Ч shell ДПУФБФПЮОП ДПВБЧЙФШ “ & ” Ч ЛПОЕГ ЛПНБОДОПК УФТПЛЙ:

рТПГЕУУ, ЪБРХУЛБЕНЩК РБТБММЕМШОП, ОБЪЩЧБЕФУС ЖПОПЧЩН (background). жПОПЧЩЕ РТПГЕУУЩ ОЕ ЙНЕАФ ЧПЪНПЦОПУФЙ ЧЧПДЙФШ ДБООЩЕ У ФПЗП ЦЕ ФЕТНЙОБМБ, ЮФП Й РПТПДЙЧЫЙК ЙИ shell (ФПМШЛП ЙЪ ЖБКМБ), ЪБФП ЧЩЧПДЙФШ ОБ ЬФП ФЕТНЙОБМ НПЗХФ (РТБЧДБ, ЛПЗДБ ОБ ПДОПН Й ФПН ЦЕ ФЕТНЙОБМЕ ЧРЕТЕНЕЦЛХ РПСЧМСАФУС УППВЭЕОЙС ПФ ОЕУЛПМШЛЙИ ЖПОПЧЩИ РТПГЕУУПЧ, ОБЮЙОБЕФУС УХЭБС ОЕТБЪВЕТЙИБ). рТЙ ЛБЦДПН ФЕТНЙОБМЕ Ч ЛБЦДЩК НПНЕОФ ЧТЕНЕОЙ НПЦЕФ ВЩФШ ОЕ ВПМШЫЕ ПДОПЗП БЛФЙЧОПЗП (foreground) РТПГЕУУБ, ЛПФПТПНХ ТБЪТЕЫЕОП У ЬФПЗП ФЕТНЙОБМБ ЧЧПДЙФШ. оБ ЧТЕНС, РПЛБ ЛПНБОДБ (ОБРТЙНЕТ, cat ) ТБВПФБЕФ Ч БЛФЙЧОПН ТЕЦЙНЕ, РПТПДЙЧЫЙК ЕЈ ЛПНБОДОЩК ЙОФЕТРТЕФБФПТ «ХИПДЙФ Ч ЖПО», Й ФБН, Ч ЖПОЕ, ЧЩРПМОСЕФ УЧПК wait() .

уФПЙФ ЪБНЕФЙФШ, ЮФП РБТБММЕМШОПУФШ ТБВПФЩ РТПГЕУУПЧ Ч Linux — ДЙУЛТЕФОБС. ъДЕУШ Й УЕКЮБУ ЧЩРПМОСФШУС НПЦЕФ УФПМШЛП РТПГЕУУПЧ, УЛПМШЛП ГЕОФТБМШОЩИ РТПГЕУУПТПЧ ЕУФШ Ч ЛПНРШАФЕТЕ (ОБРТЙНЕТ, ПДЙО). дБЧ ЬФПНХ ПДОПНХ РТПГЕУУХ ОЕНОПЗП РПТБВПФБФШ, УЙУФЕНБ ЪБРПНЙОБЕФ ЧУЈ, ЮФП ФПНХ ДМС ТБВПФЩ ОЕПВИПДЙНП, РТЙПУФБОБЧМЙЧБЕФ ЕЗП, Й ЪБРХУЛБЕФ УМЕДХАЭЙК РТПГЕУУ, РПФПН УМЕДХАЭЙК Й ФБЛ ДБМЕЕ. чПЪОЙЛБЕФ ПЮЕТЕДШ РТПГЕУУПЧ, ПЦЙДБАЭЙИ ЧЩРПМОЕОЙС. фПМШЛП ЮФП РПТБВПФБЧЫЙК РТПГЕУУ РПНЕЭБЕФУС Ч ЛПОЕГ ЬФПК ПЮЕТЕДЙ, Б УМЕДХАЭЙК ЧЩВЙТБЕФУС ЙЪ ЕЈ ОБЮБМБ. лПЗДБ ПЮЕТЕДШ ЧОПЧШ ДПИПДЙФ ДП ФПЗП, РЕТЧПЗП РТПГЕУУБ, УЙУФЕНБ ЧУРПНЙОБЕФ ОЕПВИПДЙНЩЕ ДМС ЕЗП ЧЩРПМОЕОЙС ДБООЩЕ (ПОЙ ОБЪЩЧБАФУС ЛПОФЕЛУФПН РТПГЕУУБ), Й ПО РТПДПМЦБЕФ ТБВПФБФШ, ЛБЛ ОЙ Ч ЮЈН ОЕ ВЩЧБМП. фБЛБС УИЕНБ ТБЪДЕМЕОЙС ЧТЕНЕОЙ НЕЦДХ РТПГЕУУБНЙ ОПУЙФ ОБЪЧБОЙС РУЕЧДПРБТБММЕМЙЪНБ.

Читайте также:  The windows identity foundation

ч ЧЩДБЮЕ ps , ЛПФПТХА РПМХЮЙМ нЕЖПДЙК, НПЦОП ЪБНЕФЙФШ, ЮФП PID УФБТФПЧПК ПВПМПЮЛЙ ТБЧЕО 3590 , Б PID ЪБРХЭЕООЩИ ЙЪ-РПД ОЕЗП ЛПНБОД (ПДОПК ЖПОПЧПК Й ПДОПК БЛФЙЧОПК) — 3634 Й 3635 . ьФП ЪОБЮЙФ, ЮФП ЪБ ЧТЕНС, РТПЫЕДЫЕЕ У НПНЕОФБ ЧИПДБ нЕЖПДЙС Ч УЙУФЕНХ ДП НПНЕОФБ ЪБРХУЛБ sh loop& , Ч УЙУФЕНЕ ВЩМП ЪБРХЭЕОП ЕЭЈ 3634-3590=44 РТПГЕУУБ. юФП Ц, Ч Linux НПЗХФ ПДОПЧТЕНЕООП ТБВПФБФШ ОЕУЛПМШЛП РПМШЪПЧБФЕМЕК, ДБ Й УБНПК УЙУФЕНЕ ЙОПЗДБ РТЙИПДЙФ Ч ЗПМПЧХ ЪБРХУФЙФШ ЛБЛХА-ОЙВХДШ ХФЙМЙФХ (ОБРТЙНЕТ, ЧЩРПМОСС ДЕКУФЧЙС РП ТБУРЙУБОЙА). б ЧПФ sh Й ps РПМХЮЙМЙ УПУЕДОЙЕ PID, ЪОБЮЙФ, РПЛБ нЕЖПДЙК ОБЦЙНБМ Enter Й ОБВЙТБМ ps -f , ОЙЛБЛЙИ ДТХЗЙИ РТПГЕУУПЧ ОЕ ЪБРХУЛБМПУШ.

ч ДЕКУФЧЙФЕМШОПУФЙ ДБМЕЛП ОЕ ЧУЕН РТПГЕУУБН, ЪБТЕЗЙУФТЙТПЧБООЩН Ч УЙУФЕНЕ, ОБ УБНПН ДЕМЕ ОЕПВИПДЙНП ДБЧБФШ РПТБВПФБФШ ОБТБЧОЕ У ДТХЗЙНЙ. вПМШЫЙОУФЧХ РТПГЕУУПЧ ТБВПФБФШ РТСНП УЕКЮБУ ОЕ ОХЦОП: ПОЙ ПЦЙДБАФ ЛБЛПЗП-ОЙВХДШ УПВЩФЙС, ЛПФПТПЕ ЙН ОХЦОП ПВТБВПФБФШ. юБЭЕ ЧУЕЗП РТПГЕУУЩ ЦДХФ ЪБЧЕТЫЕОЙС ПРЕТБГЙЙ ЧЧПДБ-ЧЩЧПДБ. юФПВЩ РПУНПФТЕФШ, ЛБЛ РПФТЕВМСАФУС ТЕУХТУЩ УЙУФЕНЩ, НПЦОП ЙУРПМШЪПЧБФШ ХФЙМЙФХ top . оП УОБЮБМБ нЕЖПДЙК ТЕЫЙМ ЪБРХУФЙФШ ЕЭЈ ПДЙО ВЕУЛПОЕЮОЩК УГЕОБТЙК: ЕНХ ВЩМП ЙОФЕТЕУОП, ЛБЛ ДЧБ РТПГЕУУБ ЛПОЛХТЙТХАФ ЪБ ТЕУХТУЩ НЕЦДХ УПВПК:

хЧЙДЕЧ ФБЛПЕ ТБЪОППВТБЪЙЕ ЙОЖПТНБГЙЙ, нЕЖПДЙК ЛЙОХМУС ЮЙФБФШ ТХЛПЧПДУФЧП РП top , ПДОБЛП УЛПТП РПОСМ, ЮФП ВЕЪ ЪОБОЙС БТИЙФЕЛФХТЩ Linux ВПМШЫБС ЕЈ ЮБУФШ ОЕ ЙНЕЕФ УНЩУМБ. чРТПЮЕН, ОЕЛПФПТБС ЮБУФШ ЧУЈ ЦЕ РПОСФОБ: ПВЯЈН ПРЕТБФЙЧОПК РБНСФЙ (ЧУЕК, ЙУРПМШЪХЕНПК Й УЧПВПДОПК), ЧТЕНС ТБВПФЩ НБЫЙОЩ, ПВЯЈН РБНСФЙ, ЪБОЙНБЕНПК РТПГЕУУБНЙ Й Ф. Р.

рПУМЕДОЙК РТПГЕУУ, ЪБРХЭЕООЩК ЙЪ ПВПМПЮЛЙ Ч ЖПОЕ, НПЦОП ЙЪ ЬФПК ПВПМПЮЛЙ УДЕМБФШ БЛФЙЧОЩН РТЙ РПНПЭЙ ЛПНБОДЩ fg («foreground» — «РЕТЕДОЙК РМБО»).

уЙЗОБМЩ

юФПВЩ ЪБЧЕТЫЙФШ ТБВПФХ ЖПОПЧПЗП РТПГЕУУБ У РПНПЭША “ ^C ”, нЕЖПДЙА РТЙЫМПУШ УОБЮБМБ УДЕМБФШ ЕЗП БЛФЙЧОЩН. ьФП ОЕ ЧУЕЗДБ ЧПЪНПЦОП, Й ОЕ ЧУЕЗДБ ХДПВОП. оБ УБНПН ДЕМЕ, “ ^C ” — ЬФП ОЕ ЧПМЫЕВОБС ЛОПРЛБ-ХВЙКГБ, Б РТЕДЧБТЙФЕМШОП ХУФБОПЧМЕООЩК УЙНЧПМ (У ascii-ЛПДПН 3), РТЙ РПМХЮЕОЙЙ ЛПФПТПЗП У ФЕТНЙОБМБ Linux РЕТЕДБУФ БЛФЙЧОПНХ РТПГЕУУХ УЙЗОБМ 2 (РП ЙНЕОЙ INT , ПФ «interrupt» — «РТЕТЧБФШ»).

уЙЗОБМ — ЬФП УРПУПВОПУФШ РТПГЕУУПЧ ПВНЕОЙЧБФШУС УФБОДБТФОЩНЙ ЛПТПФЛЙНЙ УППВЭЕОЙСНЙ ОЕРПУТЕДУФЧЕООП У РПНПЭША УЙУФЕНЩ. уППВЭЕОЙЕ-УЙЗОБМ ОЕ УПДЕТЦЙФ ОЙЛБЛПК ЙОЖПТНБГЙЙ, ЛТПНЕ ОПНЕТБ УЙЗОБМБ (ДМС ХДПВУФЧБ ЧНЕУФП ОПНЕТБ НПЦОП ЙУРПМШЪПЧБФШ РТЕДПРТЕДЕМЈООПЕ УЙУФЕНПК ЙНС). дМС ФПЗП, ЮФПВЩ РЕТЕДБФШ УЙЗОБМ, РТПГЕУУХ ДПУФБФПЮОП ЪБДЕКУФЧПЧБФШ УЙУФЕНОЩК ЧЩЪПЧ kill() , Б ДМС ФПЗП, ЮФПВЩ РТЙОСФШ УЙЗОБМ, ОЕ ОХЦОП ОЙЮЕЗП. еУМЙ РТПГЕУУХ ОХЦОП ЛБЛ-ФП РП-ПУПВЕООПНХ ТЕБЗЙТПЧБФШ ОБ УЙЗОБМ, ПО НПЦЕФ ЪБТЕЗЙУФТЙТПЧБФШ ПВТБВПФЮЙЛ, Б ЕУМЙ ПВТБВПФЮЙЛБ ОЕФ, ЪБ ОЕЗП ПФТЕБЗЙТХЕФ УЙУФЕНБ. лБЛ РТБЧЙМП, ЬФП РТЙЧПДЙФ Л ОЕНЕДМЕООПНХ ЪБЧЕТЫЕОЙА РТПГЕУУБ, РПМХЮЙЧЫЕЗП УЙЗОБМ. пВТБВПФЮЙЛ УЙЗОБМБ ЪБРХУЛБЕФУС БУЙОИТПООП, ОЕНЕДМЕООП РПУМЕ РПМХЮЕОЙС УЙЗОБМБ, ЮФП ВЩ РТПГЕУУ Ч ЬФП ЧТЕНС ОЙ ДЕМБМ.

дЧБ УЙЗОБМБ — 9 ( KILL ) Й 19 ( STOP ) — ЧУЕЗДБ ПВТБВБФЩЧБЕФ УЙУФЕНБ. рЕТЧЩК ЙЪ ОЙИ ОХЦЕО ДМС ФПЗП, ЮФПВЩ ХВЙФШ РТПГЕУУ ОБЧЕТОСЛБ (ПФУАДБ Й ОБЪЧБОЙЕ). уЙЗОБМ STOP РТЙПУФБОБЧМЙЧБЕФ РТПГЕУУ: Ч ФБЛПН УПУФПСОЙЙ РТПГЕУУ ОЕ ХДБМСЕФУС ЙЪ ФБВМЙГЩ РТПГЕУУПЧ, ОП Й ОЕ ЧЩРПМОСЕФУС ДП ФЕИ РПТ, РПЛБ ОЕ РПМХЮЙФ УЙЗОБМ 18 ( CONT ) — РПУМЕ ЮЕЗП РТПДПМЦЙФ ТБВПФХ. ч Linux УЙЗОБМ STOP НПЦОП РЕТЕДБФШ БЛФЙЧОПНХ РТПГЕУУХ У РПНПЭША ХРТБЧМСАЭЕЗП УЙНЧПМБ “ ^Z ”:

рЕТЕДБЧБФШ УЙЗОБМЩ ЙЪ ЛПНБОДОПК УФТПЛЙ НПЦОП МАВЩН РТПГЕУУБН У РПНПЭША ЛПНБОДЩ kill —УЙЗОБМ PID ЙМЙ РТПУФП kill PID , ЛПФПТБС РЕТЕДБЈФ УЙЗОБМ 15 ( TERM ).

дПУФХР Л ЖБКМХ Й ЛБФБМПЗХ

дПЧПМШОП ОБУЙМЙС. рПТБ нЕЖПДЙА ЪБДХНБФШУС Й П ДТХЗПК УФПТПОЕ ТБВПФЩ У Linux: П РТБЧБИ Й УЧПВПДБИ. дМС ОБЮБМБ — П УЧПВПДБИ. фБВМЙГБ РТПГЕУУПЧ УПДЕТЦЙФ УРЙУПЛ ЧБЦОЕКЫЙИ ПВЯЕЛФПЧ УЙУФЕНЩ — РТПГЕУУПЧ. пДОБЛП ОЕ НЕОЕЕ ЧБЦОЩ Й ПВЯЕЛФЩ ДТХЗПЗП ЛМБУУБ, ФЕ, ЮФП ДПУФХРОЩ Ч ЖБКМПЧПК УЙУФЕНЕ: ЖБКМЩ, ЛБФБМПЗЙ Й УРЕГЙБМШОЩЕ ЖБКМЩ (УЙНЧПМШОЩЕ УУЩМЛЙ, ХУФТПКУФЧБ Й Ф. Р.). рП ПФОПЫЕОЙА Л ПВЯЕЛФБН ЖБКМПЧПК УЙУФЕНЩ РТПГЕУУЩ ЧЩУФХРБАФ Ч ТПМЙ ДЕКУФЧХАЭЙИ УХВЯЕЛФПЧ: ЙНЕООП РТПГЕУУЩ РПМШЪХАФУС ЖБКМБНЙ, УПЪДБАФ, ХДБМСАФ Й ЙЪНЕОСАФ ЙИ. жБЛФ ЙУРПМШЪПЧБОЙС ЖБКМБ РТПГЕУУПН ОБЪЩЧБЕФУС ДПУФХРПН Л ЖБКМХ, Б УРПУПВ ЧПУРПМШЪПЧБФШУС ЖБКМПН (ЛБФБМПЗПН, УУЩМЛПК Й Ф. Д.) — ЧЙДПН ДПУФХРБ.

Читайте также:  Копирование файлов через консоль linux

юФЕОЙЕ, ЪБРЙУШ Й ЙУРПМШЪПЧБОЙЕ

чЙДПЧ ДПУФХРБ Ч ЖБКМПЧПК УЙУФЕНЕ Linux ФТЙ. дПУФХР ОБ ЮФЕОЙЕ (read) ТБЪТЕЫБЕФ РПМХЮБФШ ЙОЖПТНБГЙА ЙЪ ПВЯЕЛФБ, ДПУФХР ОБ ЪБРЙУШ (write) — ЙЪНЕОСФШ ЙОЖПТНБГЙА Ч ПВЯЕЛФЕ, Б ДПУФХР ОБ ЙУРПМШЪПЧБОЙЕ (execute) — ЧЩРПМОЙФШ ПРЕТБГЙА, УРЕГЙЖЙЮОХА ДМС ДБООПЗП ФЙРБ ПВЯЕЛФПЧ. дПУФХР Л ПВЯЕЛФХ НПЦОП ЙЪНЕОЙФШ ЛПНБОДПК chmod (change mode, УНЕОЙФШ ТЕЦЙН (ДПУФХРБ)). ч РТПУФЩИ УМХЮБСИ ЖПТНБФ ЬФПК ЛПНБОДЩ ФБЛПЧ: chmod ДПУФХР ПВЯЕЛФ , ЗДЕ ПВЯЕЛФ — ЬФП ЙНС ЖБКМБ, ЛБФБМПЗБ Й Ф. Р., Б ДПУФХР ПРЙУЩЧБЕФ ЧЙД ДПУФХРБ, ЛПФПТЩК ОЕПВИПДЙНП ТБЪТЕЫЙФШ ЙМЙ ЪБРТЕФЙФШ. ъОБЮЕОЙЕ “ +r ” ТБЪТЕЫБЕФ ДПУФХР Л ПВЯЕЛФХ ОБ ЮФЕОЙЕ (read), “ -r ” — ЪБРТЕЭБЕФ. бОБМПЗЙЮОП “ +w ”, “ -w ”, “ +x ” Й “ -x ” ТБЪТЕЫБАФ Й ЪБРТЕЭБАФ ДПУФХР ОБ ЪБРЙУШ (write) Й ЙУРПМШЪПЧБОЙЕ (execute).

дПУФХР Л ЖБКМХ

дПУФХР Л ЖБКМХ ОБ ЮФЕОЙЕ Й ЪБРЙУШ — ДПЧПМШОП ПЮЕЧЙДОЩЕ РПОСФЙС:

дПУФХР Л ЖБКМХ ОБ ЙУРПМШЪПЧБОЙЕ ПЪОБЮБЕФ ЧПЪНПЦОПУФШ ЪБРХУФЙФШ ЬФПФ ЖБКМ Ч ЛБЮЕУФЧЕ РТПЗТБННЩ, ЧЩРПМОЙФШ ЕЗП. оБРТЙНЕТ, ЧУЕ ЖБКМЩ ЙЪ ЛБФБМПЗБ /bin (Ч ФПН ЮЙУМЕ /bin/ls , /bin/rm , /bin/cat , /bin/echo Й /bin/date ) — ЙУРПМОСЕНЩЕ, Ф. Е. ДПУФХРОЩ ОБ ЙУРПМШЪПЧБОЙЕ, Й ПФФПЗП ЙИ НПЦОП РТЙНЕОСФШ Ч ЛПНБОДОПК УФТПЛЕ Ч ЛБЮЕУФЧЕ ЛПНБОД. ч ПВЭЕН УМХЮБЕ ОЕПВИПДЙНП ХЛБЪБФШ РХФШ Л РТПЗТБННЕ, ОБРТЙНЕТ, /bin/ls , ПДОБЛП РТПЗТБННЩ, ОБИПДСЭЙЕУС Ч ЛБФБМПЗБИ, РЕТЕЮЙУМЕООЩИ Ч РЕТЕНЕООПК ПЛТХЦЕОЙС PATH , НПЦОП ЧЩЪЩЧБФШ РТПУФП РП ЙНЕОЙ: ls (РПДТПВОЕЕ П РЕТЕНЕООЩИ ПЛТХЦЕОЙС ТБУУЛБЪБОП Ч МЕЛГЙЙ чПЪНПЦОПУФЙ ЛПНБОДОПК ПВПМПЮЛЙ).

уГЕОБТЙК

йУРПМОСЕНЩЕ ЖБКМЩ Ч Linux ВЩЧБАФ ТПЧОП ДЧХИ ЧЙДПЧ. рЕТЧЩК — ЬФП ЖБКМЩ Ч УПВУФЧЕООП ЙУРПМОСЕНПН (executable) ЖПТНБФЕ. лБЛ РТБЧЙМП, ФБЛЙЕ ЖБКМЩ — ТЕЪХМШФБФ ЛПНРЙМСГЙЙ РТПЗТБНН, ОБРЙУБООЩИ ОБ ЛМБУУЙЮЕУЛЙИ СЪЩЛБИ РТПЗТБННЙТПЧБОЙС, ЧТПДЕ уЙ. рПРЩФЛБ РТПЮЙФБФШ ФБЛПК ЖБКМ У РПНПЭША, ОБРТЙНЕТ, cat ОЕ РТЙЧЕДЈФ ОЙ Л ЮЕНХ РПМЕЪОПНХ: ОБ ЬЛТБО РПМЕЪХФ ТБЪОППВТБЪОЩЕ ВЕУУНЩУМЕООЩЕ УЙНЧПМЩ, Ч ФПН ЮЙУМЕ — ХРТБЧМСАЭЙЕ. ьФП — ФБЛ ОБЪЩЧБЕНЩЕ НБЫЙООЩЕ ЛПДЩ — СЪЩЛ, РПОСФОЩК ФПМШЛП ЛПНРШАФЕТХ. ч Linux ЙУРПМШЪХЕФУС ОЕУЛПМШЛП ЖПТНБФПЧ ЙУРПМОСЕНЩИ ЖБКМПЧ, УПУФПСЭЙИ ЙЪ НБЫЙООЩИ ЛПДПЧ Й УМХЦЕВОПК ЙОЖПТНБГЙЙ, ОЕПВИПДЙНПК ПРЕТБГЙПООПК УЙУФЕНЕ ДМС ЪБРХУЛБ РТПЗТБННЩ: УПЗМБУОП ЬФПК ЙОЖПТНБГЙЙ, СДТП Linux ЧЩДЕМСЕФ ДМС ЪБРХУЛБЕНПК РТПЗТБННЩ ПРЕТБФЙЧОХА РБНСФШ, ЪБЗТХЦБЕФ РТПЗТБННХ ЙЪ ЖБКМБ Й РЕТЕДБЈФ ЕК ХРТБЧМЕОЙЕ. вПМШЫЙОУФЧП ХФЙМЙФ Linux — РТПЗТБННЩ ЙНЕООП ФБЛПЗП, «ДЧПЙЮОПЗП» ЖПТНБФБ.

чФПТПК ЧЙД ЙУРПМОСЕНЩИ ЖБКМПЧ — УГЕОБТЙЙ. уГЕОБТЙК — ЬФП ФЕЛУФПЧЩК ЖБКМ, РТЕДОБЪОБЮЕООЩК ДМС ПВТБВПФЛЙ ЛБЛПК-ОЙВХДШ ХФЙМЙФПК. юБЭЕ ЧУЕЗП ФБЛБС ХФЙМЙФБ — ЬФП ЙОФЕТРТЕФБФПТ ОЕЛПФПТПЗП СЪЩЛБ РТПЗТБННЙТПЧБОЙС, Б УПДЕТЦЙНПЕ ФБЛПЗП ЖБКМБ — РТПЗТБННБ ОБ ЬФПН СЪЩЛЕ. нЕЖПДЙК ХЦЕ ОБРЙУБМ ПДЙО УГЕОБТЙК ДМС sh : ВЕУЛПОЕЮОП ЧЩРПМОСАЭХАУС РТПЗТБННХ loop . рПУЛПМШЛХ Л ФПНХ ЧТЕНЕОЙ ПО ЕЭЈ ОЕ ЪОБМ, ЛБЛ РПМШЪПЧБФШУС chmod , ЕНХ ЧУСЛЙК ТБЪ РТЙИПДЙМПУШ СЧОП ХЛБЪЩЧБФШ ЙОФЕТРТЕФБФПТ ( sh ЙМЙ bash ), Б УГЕОБТЙК РЕТЕДБЧБФШ ЕНХ Ч ЧЙДЕ РБТБНЕФТБ (УН. РТЙНЕТЩ Ч ТБЪДЕМЕ рТПГЕУУЩ).

еУМЙ ЦЕ УДЕМБФШ ЖБКМ ЙУРПМОСЕНЩН, ФП ФХ ЦЕ УБНХА РТПГЕДХТХ — ЪБРХУЛ ЙОФЕТРТЕФБФПТБ Й РЕТЕДБЮХ ЕНХ УГЕОБТЙС Ч ЛБЮЕУФЧЕ РБТБНЕФТБ ЛПНБОДОПК УФТПЛЙ — ВХДЕФ ЧЩРПМОСФШ УЙУФЕНБ:

еУМЙ УЙУФЕНЕ ОЕ ОБНЕЛОХФШ УРЕГЙБМШОП, Ч ЛБЮЕУФЧЕ ЙОФЕТРТЕФБФПТБ ПОБ ЪБРХУЛБЕФ УФБОДБТФОЩК shell — /bin/sh . пДОБЛП ЕУФШ ЧПЪНПЦОПУФШ ОБРЙУБФШ УГЕОБТЙК ДМС МАВПК ХФЙМЙФЩ, Ч ФПН ЮЙУМЕ Й ОБРЙУБООПК УБНПУФПСФЕМШОП. дМС ЬФПЗП РЕТЧЩНЙ ДЧХНС ВБКФБНЙ УГЕОБТЙС ДПМЦОЩ ВЩФШ УЙНЧПМЩ “ #! ”, ФПЗДБ ЧУА ЕЗП РЕТЧХА УФТПЛХ, ОБЮЙОБС У ФТЕФШЕЗП ВБКФБ, УЙУФЕНБ ЧПУРТЙНЕФ ЛБЛ ЛПНБОДХ ПВТБВПФЛЙ. йУРПМОЕОЙЕ ФБЛПЗП УГЕОБТЙС РТЙЧЕДЈФ Л ЪБРХУЛХ ХЛБЪБООПК РПУМЕ “ #! ” ЛПНБОДЩ, РПУМЕДОЙН РБТБНЕФТПН ЛПФПТПК ДПВБЧЙФУС ЙНС УБНПЗП ЖБКМБ УГЕОБТЙС.

дПУФХР Л ЛБФБМПЗХ

ч ПФМЙЮЙЕ ПФ ЖБКМБ, ОПЧЩК ЛБФБМПЗ УПЪДБЈФУС (У РПНПЭША mkdir ) ДПУФХРОЩН Й ОБ ЮФЕОЙЕ, Й ОЕ ЪБРЙУШ, Й ОБ ЙУРПМШЪПЧБОЙЕ. уХФШ ЧУЕИ ФТЈИ ЧЙДПЧ ДПУФХРБ Л ЛБФБМПЗХ НЕОЕЕ ПЮЕЧЙДОБ, ЮЕН УХФШ ДПУФХРБ Л ЖБКМХ. чЛТБФГЕ ПОБ ФБЛПЧБ: ДПУФХР РП ЮФЕОЙА — ЬФП ЧПЪНПЦОПУФШ РТПУНПФТЕФШ УПДЕТЦЙНПЕ ЛБФБМПЗБ (УРЙУПЛ ЖБКМПЧ), ДПУФХР РП ЪБРЙУЙ — ЬФП ЧПЪНПЦОПУФШ ЙЪНЕОЙФШ УПДЕТЦЙНПЕ ЛБФБМПЗБ, Б ДПУФХР ОБ ЙУРПМШЪПЧБОЙЕ — ЧПЪНПЦОПУФШ ЧПУРПМШЪПЧБФШУС ЬФЙН УПДЕТЦЙНЩН: ЧП-РЕТЧЩИ, УДЕМБФШ ЬФПФ ЛБФБМПЗ ФЕЛХЭЙН, Б ЧП-ЧФПТЩИ, ПВТБФЙФШУС ЪБ ДПУФХРПН Л УПДЕТЦБЭЕНХУС Ч ОЈН ЖБКМХ.

Читайте также:  Отладка 1с linux сервера

1йНС ЬФПЗП УЙЗОБМБ РТПЙУИПДЙФ ОЕ ПФ ЛБЪОЙ ЮЕТЕЪ РПЧЕЫЕОЙЕ, Б ПФ РПЧЕЫЕООПК ФЕМЕЖПООПК ФТХВЛЙ.

2фПЮОЕЕ, ОБ УФБОДБТФОЩК ЧЩЧПД РТПЗТБННЩ, ФБЛПЕ РЕТЕОБРТБЧМЕОЙЕ ОЕ ЛБУБЕФУС УФБОДБТФОПЗП ЧЩЧПДБ ПЫЙВПЛ.

Источник

Как найти родительский процесс в Linux

Во время выполнения программы ядро ​​создает процесс, который помогает сохранять детали выполнения программы в системной памяти. Когда программа выполняется, она становится процессом для системы. Итак, мы можем сказать, что процесс — это программа, пока он не выполняется.

Процесс, созданный ядром, известен как » родительский процесс «, а все процессы, производные от родительского процесса, называются » дочерними процессами «. Один процесс может состоять из нескольких дочерних процессов, имеющих уникальный PID, но с одним и тем же PPID.

У новичка может возникнуть вопрос: в чем разница между PID и PPID?

Мы уже обсуждали PID в большинстве наших статей, если вы новичок, не беспокойтесь!

В системах Linux одновременно выполняется несколько процессов. Иногда процесс может иметь один поток (блок выполнения внутри процесса) или несколько потоков. Процессы имеют разные состояния; они могут находиться в состоянии ожидания, готовности или работы. Все дело в том, как пользователь или ядро ​​расставляют приоритеты. Итак, эти процессы идентифицируются уникальными номерами, которые мы называем идентификатором процесса (PID). Уникальные номера для родительских процессов называются PPID, и каждый родительский процесс может иметь несколько дочерних процессов с их уникальными идентификаторами. PID дочерних процессов отличаются, поскольку они представляют собой отдельные исполнительные единицы, но имеют один и тот же идентификатор родительского процесса ( PPID ).

Нам нужен PPID, когда дочерний процесс создает проблемы и не работает должным образом. В этом случае это может повлиять на работу других процессов, а также на систему. Здесь, чтобы остановить непрерывно работающий процесс, необходимо убить его родительский процесс.

Давайте проверим, как мы можем найти PPID:

Как найти идентификатор родительского процесса (PPID) в Linux

У нас есть несколько подходов к поиску PPID запущенного процесса в системах Linux:

  1. Использование команды «pstree»
  2. Использование команды «ps»

Как найти PPID с помощью команды pstree в Linux

Команда » pstree » — хороший подход для определения идентификатора родительского процесса (PPID), поскольку она показывает отношения родитель-потомок в древовидной иерархии.

Введите в терминале просто команду » pstree » с параметром » -p «, чтобы проверить, как он отображает все запущенные родительские процессы вместе с их дочерними процессами и соответствующими PID.

Он показывает родительский идентификатор вместе с идентификаторами дочерних процессов.

Давайте рассмотрим пример „Mozilla Firefox“, чтобы получить его PPID вместе с полной иерархией процессов. Выполните в терминале следующую команду:

( grep — это инструмент командной строки, который помогает искать определенную строку)

В упомянутых результатах мы видим, что 3528 — это PPID процесса » Firefox «, а все остальные — дочерние процессы.

Чтобы распечатать в терминале только идентификатор родительского процесса, выполните указанную команду:

Как найти PPID с помощью команды ps

Утилита команды » ps » — это еще один способ обрабатывать информацию из файловой системы » / proc » и отслеживать ее.

С помощью этой команды пользователь также может найти PPID и PID запущенного процесса.

Выполните следующую команду » ps » вместе с параметром » ef «, чтобы отобразить подробную информацию о процессах, включая PPID :

Если вы хотите отобразить PPID определенного процесса с подробностями, выполните указанную команду » ps » с помощью » grep «:

( опция » -f » используется для перечисления деталей процесса)

А чтобы получить только PPID » Firefox «, используйте следующий синтаксис:

Итак, найдите PPID » firefox » с помощью команды:

Заключение

При каждом выполнении программы ядро ​​создает процесс, который загружает детали выполнения в память. Этот созданный процесс известен как родительский процесс, имеющий один или несколько потоков. Каждому процессу ядро автоматически присваивает уникальный PPID и PID.

При работе с системой Linux следует знать PPID запущенных процессов. Проблема с дочерним процессом может повлиять на другие процессы. В таких случаях нам может потребоваться убить родительский процесс.

Идентификаторы PPID запущенных процессов можно определить несколькими способами. Самый простой подход — использовать команду » ps » и » pstree «.

Выше мы видели, как с помощью этих двух командных инструментов можно узнать PPID конкретного процесса.

Источник

Оцените статью