Као испитивачи софтвера, понекад морамо да знамо како зомби процес изгледа на нашем систему. На њему можемо да покренемо различите тестове ако тачно знамо који је програм и ИД процеса повезан са тим зомби процесом.
Шта је Зомби процес?
Зомби или угашени процес у Линуку је процес који је завршен, али његов унос и даље остаје у табели процеса због недостатка кореспонденције између родитељског и подређеног процеса. Обично родитељски процес проверава статус својих подређених процеса путем функције ваит (). Када је подређени процес завршен, функција чекања сигнализира родитељу да у потпуности изађе из процеса из меморије. Међутим, ако родитељ не успе да позове функцију чекања ни за једно своје дете, подређени процес остаје жив у систему као мртав или зомби процес. Ови зомби процеси могу се у великом броју акумулирати на вашем систему и утицати на његове перформансе.
Када покренете горњу команду и зомби се покрене, то ће бити приказано у другом реду излаза на следећи начин:
Међутим, ако на вашем систему није покренут зомби процес, можете створити лутку за потребе тестирања како је описано у овом чланку. Овај процес изводимо на Убунту 18.04.
Стварање процеса зомбија
У овом одељку ћемо написати ц програм за покретање зомби процеса на нашем систему.
Отворите уређивач текста и унесите следећи код:
Код
#инцлуде#инцлуде #инцлуде инт маин () пид_т дете_пид; дете_пид = форк (); иф (цхилд_пид> 0) спавање (60); елсе излаз (0); ретурн 0;
Сачувајте ову датотеку као зомби.ц
Зомби процес креиран путем овог кода покренут ће се 60 секунди. Време трајања можете да повећате тако што ћете одредити време (у секундама) у функцији спавања ().
Отворите Терминал и покрените следећу команду да бисте компајлирали овај програм:
$ цц зомби.ц -о зомби
Сада ће се створити извршна датотека под именом зомби.
Имајте на уму да ћете морати инсталирати ГНУ Ц компајлер ако он већ није инсталиран на вашем систему помоћу следеће наредбе:
$ судо апт-гет инсталл буилд-битно
Сада покрените зомби програм путем следеће наредбе:
./ зомби
Видећете следећи излаз:
Током тестирања можете да користите ИД надређеног процеса (ППИД) и подређени ИД процеса (ПИД); на пример убијањем овог зомби процеса путем наредбе килл.
Док је овај процес покренут, можете да видите перформансе система у другом прозору терминала кроз горњу команду. Кроз други ред излаза моћи ћете да видите 1 зомби процес.
Команда пс ће сада такође приказати овај угашени процес и зомби програм одговоран за њега:
$ пс ако стат, ппид, пид, цомм | греп -в угашен
Ова наредба ће вам дати стање, надређени ИД, ИД процеса, програм који изводи зомби процес (зомби програм који смо покренули у овом водичу).
Сада сте научили како да направите једноставан лажни зомби поступак. Ово ће вам дати представу како то изгледа на вашем систему и како га можете користити у сврхе тестирања.