Операционната система Linux предоставя няколко начина за прекратяване на процес на операционна система Linux. Очевидният начин за спиране на програма е чрез щракване върху бутона X в горния ляв или десен ъгъл. Но има безброй други начини за убиване на процес; ние сме тук, за да обсъдим другите ефективни начини.
Начини за убиване на процес в Linux
Контролна последователност
Вторият очевиден начин за убиване на току-що стартирал процес е да въведете Ctrl-C в командния ред. Контролната последователност Ctrl-C обикновено е безопасна за използване, въпреки че е възможна известна загуба на данни.
Последователността Ctrl-Z ще спре текущ процес. Той изпраща сигнала SIGTSP към процес, чието действие по подразбиране е да спре процеса.
команди за убиване
Операционната система Linux идва с командата kill, която можете да използвате, за да прекратите процес, когато те не реагират или консумира твърде много ресурси. Процесът в Linux е екземпляр на програма.
Уникален PID се генерира автоматично за този процес при стартиране на програма. Процесът на иницииране е първият процес, който се стартира при стартиране на Linux система и присвояване на стойност „1“.
Init е главният процес и не може да бъде убит чрез командата kill. Командата kill в процеса на init е просто искане за изключване на системата.
Това ръководство ще ви преведе през стъпките и няколко начина за прекратяване на работещ процес с помощта на терминала на Linux.
Потребителят root има всички разрешения, необходими за унищожаване на всички процеси. Можете да получите коренна черупка с командата su или да добавите sudo преди командата и да я стартирате.
Сигналът по подразбиране, изпратен от командата kill
Убиването на процес ще изпрати съобщение за прекратяване на посочения процес. Двата основни типа съобщения за прекратяване включват:
• SIGTERM - Командата kill ще изпрати сигнал SIGTERM по подразбиране. Той трябва да позволи на процеса да приключи чрез обичайните си процедури за изключване. Това е по-нежен начин за опит за прекратяване на процес и може да бъде блокиран.
• SIGKILL - Винаги ще убие процес внезапно. Ако SIGKILL не работи, операционната система е отказала. Това е най-бързият и най-ефективен метод за убиване на процес.
Избройте текущите процеси
Командата top, ps команда и pidof Command са най-лесните начини за преглед на изпълняващи се процеси в Linux система.
Синтаксис:
ps -e | grep име-на-процес
Снимката на екрана по-долу показва как да използвате командата ps, за да проверите дали MySQL работи в системата. Той ни дава PID на демона MySQL, който е1162.
Общи опции за добавяне към командата ps
• -a: преглед на процесите от всички потребители.
• -u: преглед на подробна информация за всеки процес.
• -x: преглед на всички процеси, които се контролират от демони.
ps -e
Синтаксис:
Горна част
Най-горната команда ще ви покаже PID, потребител, име на ресурса и колко системни ресурси използва всеки процес. Те са полезни, ако решите да прекратите някой от процесите.
Използването на командата pgrep също е много ефективно за получаване на съответния идентификатор на процеса.
Общи опции за добавяне към командата pgrep.
• -l: избройте имената на процесите и PID.
• -n: Връща най-новия процес.
• -o: Връща най-стария процес.
• -u: Намерете процеси, които принадлежат на конкретен потребител.
• -x: Намерете процес, който точно отговаря на даден модел.
Командата pidof се използва за намиране на IP на процес, ако знаете името на процеса.
Синтаксис:
пидоф
Настроики:
• -c: Връща PID в рамките на една основна директория.
• -o: Той ще пропусне определени PID.
• -s: Връща един PID.
• -x: Връща PID на черупки, които изпълняват скриптове.
Можете да убиете процес в Linux чрез различни методи в зависимост от това дали знаете PID на процеса, името на процеса или времето, в което процесът се изпълнява.
команда на killall
Командата killall се използва за убиване на процеси по име. Той може да убие множество процеси с една команда и по подразбиране изпраща сигнал SIGTERM.
Синтаксис:
убийство
Опции, налични с командата killall:
• -e: Връща точното съвпадение за името на процеса.
• -I: Командата ще игнорира случая при намиране на името на процеса.
• -i: Ще поиска допълнителна информация при убиване на процес по име.
• -u: Ще убие процеси, притежавани от определен потребител на системата.
• -v: Ще даде обратна връзка дали процесът на убиване е изпълнен успешно.
Командата killall може също да прекратява процеси в Linux система въз основа на времето на изпълнение на процесите.
• -o: Тази опция ще унищожи всички процеси за повече от определеното време.
• -y: Тази опция ще унищожи всички процеси, работещи по-малко от определеното време.
Пример:
• killall -o 20m: Командата ще унищожи всички процеси, които са по-стари от 20 минути.
• Killall -y 20m: Командата ще унищожи всички процеси, работещи за по-малко от 15 минути.
команда за убиване
Командата kill ще убие процес, ако знаете IP на процеса.
Синтаксис:
убий
Командата kill убива един процес с дадения идентификатор на процеса. Командата ще изпрати сигнал SIGTERM, за да спре и да изчака процесът да премине рутинните си процедури за изключване.
Убий -9 команда
Командата kill -9 се използва за прекратяване на неподходящи процеси или услуги.
Синтаксис:
убий -9
или
убий -SIGKILL
Командата kill -9 ще изпрати сигнал SIGKILL за незабавно спиране на процеса. Командата kill -9 ще заобиколи стандартната рутинна програма за изключване и всички незапазени данни ще бъдат загубени.
Програмите, които не реагират, ще игнорират командата kill, но ще прекратят всеки път, когато бъде издадена командата kill -9.
Други често използвани опции за убиване включват:
• -1 (HUP): Това е опцията „затваряне“ и обикновено е много безопасна.
• -2 (SIGINT): Това е същият сигнал като Ctrl-C и се счита за безопасна алтернатива за убиване на програма.
• -15 (-TERM): това е сигналът за прекратяване по подразбиране и обикновено е много безопасен.
Можете да получите пълен списък на всички налични сигнали, като използвате командата kill -l.
pkill команда
Командата pkill ще убие процес, когато знаете името на процеса. По подразбиране pkill ще изпрати сигнала SIGTERM, за да прекрати процеса.
Синтаксис:
pkill
pkill опции:
• -n: Тази команда ще убие най-новите процеси.
• -o: Тази команда ще убие най-старите процеси.
• -u: Тази команда ще убие процеси, базирани на избрания потребител.
• -x: Тази команда ще убие процеси, които съответстват на шаблон.
• -signal: Изпраща определен сигнал, различен от сигнала по подразбиране SIGTERM.
xkill
Командата xkill ще затвори връзката на сървъра с клиенти.
xkill
Командата xkill ще прекрати нежеланите сървърни процеси.
команда на върха
Най-горната команда осигурява интерфейс, чрез който потребителят може да посочи процеса на прекратяване.
Синтаксис:
Горна част
За да убиете процес чрез PID, вмъкнете k от интерфейса и след това въведете определен идентификатор на процеса.
Обобщение
• Трябва да имате разрешения на sudo, за да убиете процес чрез командния ред.
• Всеки път, когато генерирате сигнал с помощта на командата kill, системата Linux прекъсва нормалния поток на изпълнение на целевия процес.
• За да намерите работещ процес, можете да използвате командите ps, top, pgrep или pidof.
• Можете да убиете процес по име или идентификатор на процеса, като използвате командите kilall, pkill, kill, xkill или top.
• Процесът на убиване ще изпрати сигнал за прекратяване на SIGTERM, SIGHUP ИЛИ SIGKILL.
• Можете да използвате системния монитор, за да убиете процеса на Linux. Той може да бъде намерен в системните инструменти и предоставя няколко опции като най-горния процес, крайния процес или убиването на процеса.
• Командата kill и нейните варианти са доста ясни за разбиране и използване.
В това ръководство ние подчертахме различни начини за убиване на процеси в Linux. Има малка крива на обучение по отношение на списъка с опции за сигнал, които предлага, което е от съществено значение за правилното администриране на Linux. Ако искате да научите повече, предлагам да разгледате съответните им ръководства.