Управление на процесите

Управление на процеси в Ubuntu Linux

Управление на процеси в Ubuntu Linux
Управлението на процеси в Linux е важна тема за научаване и разбиране, тъй като е многозадачна операционна система и има много процеси, които се извършват едновременно. Linux предоставя много инструменти за управление на процеси, като изброяване на работещи процеси, убийствени процеси, наблюдение на използването на системата и т.н. В Linux всеки процес е представен от своя идентификатор на процеса (PID). Има някои други атрибути на процеса като потребителски идентификатор и идентификатор на група, ако потребител или група стартира процеса. Понякога трябва да убиете или да взаимодействате с процес, така че трябва да знаете как да управлявате тези процеси, за да накарате системата ви да работи безпроблемно. В Linux процесите могат да се управляват с команди като ps, pstree, pgrep, pkill, lsof, top, nice, renice и kill, и т.н.

Процеси

Изпълнението на екземпляр на програма се нарича процес. В Linux идентификаторът на процеса (PID) се използва за представяне на процес, който е отличителен за всеки процес. Има два вида процеси,

Основни процеси

Фоновите процеси стартират в терминала и се изпълняват сами. Ако стартирате процес в терминала, изходът му ще се покаже в терминален прозорец и можете да взаимодействате с него, но ако не е необходимо да взаимодействате с процеса, можете да го стартирате във фонов режим. Ако искате да стартирате процес във фонов режим, просто добавете знак "&" в края на командата и той ще започне да работи във фонов режим; това ще ви спести време и ще можете да стартирате друг процес. За изброяване на процеси, работещи във фонов режим, използвайте командата 'jobs.„Той ще покаже всички работещи процеси във фонов режим.

Например надстройката е дълъг процес в Linux. Отнема твърде много време и ако искате да правите други неща, докато системата се надстройва, използвайте командата background.

[имейл защитен]: ~ $ sudo apt-get upgrade -y &

Той ще започне да работи във фонов режим. А междувременно можете да взаимодействате с други програми. Можете да проверите колко и кои процеси се изпълняват във фонов режим, като въведете тази команда.

[имейл защитен]: ~ $ работни места
[1] + Стартиране на sudo apt-get upgrade -y &

Процеси на преден план

Всички процеси, които изпълняваме в терминала, по подразбиране се изпълняват като процеси на преден план. Можем да ги управляваме чрез команди за преден план и фон.

Можете да изведете на преден план всеки фонов процес, посочен в задания, като въведете командата 'fg', последвана от номера на фоновия процес.

[имейл защитен]: ~ $ fg% 1
sudo apt-get upgrade -y

И ако искате да вземете този процес на фона, напишете тази команда.

[имейл защитен]: ~ $ bg% 1

Изброяване и управление на процеси с командата ps

Процесът на изброяване с командата ps е един от най-старите начини за преглед на изпълняваните процеси на терминала. Въведете командата ps, за да изброите кои процеси се изпълняват и колко системен ресурс използват и кой ги изпълнява.

[имейл защитен]: ~ $ ps u
ПОТРЕБИТЕЛ PID% CPU% MEM VSZ RSS TTY STAT СТАРТ ВРЕМЕНА КОМАНДА
Джим 1562 0.0 0.0 164356 6476 tty2 Ssl + 13:07 0:00 черупка
Джим 1564 5.2 0.9 881840 78704 tty2 Sl + 3:07 13:13 dauth
Джим 2919 0.0 0.0 11328 4660 точки / 0 Ss 13:08 0:00 баш
Джим 15604 0.0 0.0 11836 3412 точки / 0 R + 17:19 0:00 ps u
... изрязване ..

Потребителската колона показва потребителското име в горната таблица, а PID показва идентификатора на процеса. Можете да използвате PID, за да убиете или изпратите сигнал за убиване към процес. % CPU показва процесорен процент на процесора, а% MEM показва използване на памет с произволен достъп. За да убиете процес, напишете.

[имейл защитен]: ~ $ kill [идентификатор на процеса (PID)]

или

[имейл защитен]: ~ $ kill -9 [идентификатор на процеса (PID)]

Използвайте командата ps aux, за да видите всички работещи процеси и добавете тръба, за да я видите в ред.

[имейл защитен]: ~ $ ps aux | по-малко

Ако искате да пренаредите колоните, можете да го направите, като добавите флаг за изброяване на всички процеси и -o за индикация за колоните по ключови думи в командата ps.

[имейл защитен]: ~ $ ps -eo pid, user, uid,% cpu,% mem, vsz, rss, comm
PID ПОТРЕБИТЕЛ UID% CPU% MEM VSZ RSS КОМАНДА
1 корен 0 0.1 0.1 167848 11684 систематизиран
3032 джим 1000 16.5 4.7 21744776 386524 хром
... изрязване ..

Опции за командата ps.

опцията u се използва за изброяване на процесите от потребителите.

[имейл защитен]: ~ $ ps u

Опцията f се използва за показване на пълния списък.

[имейл защитен]: ~ $ ps f

Опцията x се използва за показване на информация за процеса без терминал.

[имейл защитен]: ~ $ ps x

Опцията e се използва за показване на разширена информация.

[имейл защитен]: ~ $ ps e

използва се опция за изброяване на всички процеси с терминала.

[имейл защитен]: ~ $ ps a

опцията v се използва за показване на формат на виртуална памет.

[имейл защитен]: ~ $ ps v

Флагове за командата ps.

-Знамето e се използва, за да се види всеки процес в системата.

[имейл защитен]: ~ $ ps -e

-u флаг се използва, за да видите процесите, които се изпълняват като root.

[имейл защитен]: ~ $ ps -u

-f флаг се използва за пълен списък на процесите.

[имейл защитен]: ~ $ ps -f

-o флаг се използва за изброяване на процесите в желаната колона.

[имейл защитен]: ~ $ ps -o
pstree

pstree е друга команда за изброяване на процесите; показва изхода в дървовиден формат.

[имейл защитен]: ~ $ pstree

Опции за командата pstree

се използва за процеси на сортиране от PID.

[имейл защитен]: ~ $ pstree -n

се използва за подчертаване на процеси.

[имейл защитен]: ~ $ pstree -H [PID]
[имейл защитен]: ~ $ pstree -H 6457

се използва за показване на изход, включително аргументи от командния ред.

[имейл защитен]: ~ $ pstree -a

се използва за показване на процеси по идентификатор на група.

[имейл защитен]: ~ $ pstree -g

се използва за засяване на дървото или специфичен процес.

[имейл защитен]: ~ $ pstree -s [PID]
[имейл защитен]: ~ $ pstree -s 6457

[потребителско име] се използва за показване на процеси, собственост на потребител.

[имейл защитен]: ~ $ pstree [потребителско име]
[имейл защитен]: ~ $ pstree jim
pgrep

С командата pgrep можете да намерите работещ процес въз основа на определени критерии. Можете да използвате пълното име или съкращението на процеса, за да намерите или чрез потребителско име или други атрибути. Командата pgrep следва следния модел.

[имейл защитен]: ~ $ Pgrep [опция] [модел]
[имейл защитен]: ~ $ pgrep -u jim chrome
Опции за pgrep команда

-i се използва за търсене на регистър без регистра

[имейл защитен]: ~ $ Pgrep -i firefox

се използва за ограничаване на изхода

[имейл защитен]: ~ $ Pgrep -u jim -d:

-u се използва за намиране на процес, притежаван от потребител

[имейл защитен]: ~ $ Pgrep -u jim

се използва за изброяване на процеси заедно с техните команди

[имейл защитен]: ~ $ Pgrep -u jim -a

-° С се използва за показване на броя на съвпадащите процеси

[имейл защитен]: ~ $ Pgrep -c -u jim

се използва за изброяване на процеси и тяхното име

[имейл защитен]: ~ $ Pgrep -u jim -l
pkill

С командата pkill можете да изпратите сигнал към работещ процес въз основа на определени критерии. Можете да използвате пълното име или съкращението на процеса, за да намерите или чрез потребителско име или други атрибути. Командата pgrep следва следния модел.

[имейл защитен]: ~ $ Pkill [Опции] [Модели]
[имейл защитен]: ~ $ Pkill -9 хром
Опции за pkill команда

-сигнал се използва за изпращане на сигнал e.ж. SIGKILL, SIGTERM и др.

[имейл защитен]: ~ $ Pkill --signal SIGTERM vscode

-HUP се използва за презареждане на процес

[имейл защитен]: ~ $ Pkill -HUP syslogd

се използва за убиване на процеси, базирани на пълния команден ред.

[имейл защитен]: ~ $ Pkill -f “ping 7.7.7.7 "

-u се използва за убиване на всички процеси, притежавани от потребител.

[имейл защитен]: ~ $ Pkill -u jim

-i се използва за безчувствено убиване на процеса от pkill.

[имейл защитен]: ~ $ Pkill -i firefox

-9 се използва за изпращане на сигнал за убиване.

[имейл защитен]: ~ $ Pkill -9 хром

-15 се използва за изпращане на сигнал за прекратяване.

[имейл защитен]: ~ $ Pkill -15 vlc
lsof (Списък на отворените файлове)

Тази помощна програма на командния ред се използва за изброяване на файлове, отворени от няколко процеса. И както знаем, всички UNIX / Linux системи разпознават всичко като файл, така че е удобно да използвате командата lsof, за да изброите всички отворени файлове.

[имейл защитен]: ~ $ lsof

В горната таблица на командата lsof FD представлява описание на файла, cwd представлява текущата работна директория, txt означава текстов файл, mem означава картографирани файлове в паметта, mmap означава устройства, картографирани в паметта, REG представлява обикновен файл, DIR представлява директория, rtd означава коренна директория. Има и други опции, които можете да използвате с командата lsof.

Опции за lsof команда.

-° С се използва за изброяване на отворени файлове по името на процеса им.

[имейл защитен]: ~ $ lsof -c хром

-u се използва за изброяване на отворени файлове от потребител.

[имейл защитен]: ~ $ lsof -u jim

-i се използва за изброяване на процеси, изпълняващи се на порт.

[имейл защитен]: ~ $ lsof -i

се използва за изброяване на отворени файлове в директория.

[имейл защитен]: ~ $ lsof + D / home /

-стр се използва за изброяване на отворени файлове от процес.

[имейл защитен]: ~ $ lsof -p 1342

Изброяване и управление на процеса с най-горната команда

С горната команда можете да покажете в реално време изглед на изпълняваните системни процеси. Той показва процесите в зависимост от използването на процесора. Можете да сортирате колоната според вас. Командата отгоре също така предоставя известна информация за вашата система, като например колко време системата работи или колко потребители са свързани към системата и колко процеса се изпълняват, колко процесора и RAM се използват и списък на всеки процес.

Въведете командата отгоре, за да изброите процесите, които се изпълняват.

[имейл защитен]: ~ $ отгоре
Задачи: общо 291, 1 бягане, 290 спане, 0 спряни, 0 зомбита
% Cpu (s): 2.3us, 0.3sy, 0.0ни, 97.0id, 0.3wa, 0.0hi, 0.0si, 0.0ст
MiB Mem: 7880.Общо 6, 1259.9 безплатни, 3176 използвани, 3444.4 бафа / кеш
Размяна на MiB: 2048.0 общо, 2048.0 безплатно, 0.0 използвани. 4091.8 ползват Mem
PID ПОТРЕБИТЕЛ PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND
3241 джим 20 0 20.7g 33512 10082 S 1.7 4.2 0:54.24 хром
3327 джим 20 0 4698084 249156 86456 S 1.3 3.1 1:42.64 хром
2920 джим 20 0 955400 410868 14372 S 1.0 5.1 7:51.04 хром
3423 джим 20 0 4721584 198500 10106 S 1.0 2.5 0:49.00 хром
3030 джим 20 0 458740 114044 66248 S 0.7 1.4 3:00.47 хром
3937 джим 20 0 4610540 104908 72292 S 0.7 1.3 0:05.91 хром
1603 джим 20 0 825608 67532 40416 S 0.3 0.8 3:13.52 Xorg
1756 джим 20 0 4154828 257056 10060 S 0.3 3.2 5:53.31 гном+
1898 джим 20 0 289096 29284 5668 S 0.3 0.4 1:06.28 фузума
3027 джим 20 0 587580 14304 75960 S 0.3 1.8 9:43.59 хром
3388 джим 20 0 4674192 156208 85032 S 0.3 1.9 0:13.91 хром
3409 джим 20 0 4642180 140020 87304 S 0.3 1.7 0:15.36 хром
3441 джим 20 0 16.5g 156396 89700 S 0.3 1.9 0:25.70 хром
.. .изрязване .. .

Можете също така да направите някои действия с командата top, за да направите промени в изпълняваните процеси; ето списъка по-долу.

Обърнете внимание кой процес отнема повече памет или процесор. Тези процеси, които консумират повече памет, могат да бъдат унищожени, а тези, които консумират повече CPU, могат да бъдат пренастроени, за да им дадат по-малко значение за процесора.

Убийте процес в горната част: Натиснете к и напишете идентификатора на процеса, който искате да убиете. След това напишете 15 или 9, за да убиете нормално или веднага; можете също да убиете процес с командата kill или killall.

Renice процес в горната част: Натиснете r и напишете PID на процеса, който искате да бъдете преименуван. Той ще ви помоли да въведете PID на процеса и след това стойността на нотификацията, която искате да придадете на този процес, е между -19 и 20 (-19 означава най-голямо значение и 20 означава най-ниско значение).

Изброяване и управление на процеси със системен монитор

Linux разполага със системен монитор gnome, за да показва текущите процеси по-динамично. За да стартирате системния монитор, натиснете клавиша windows и въведете системния монитор, щракнете върху неговата икона и можете да видите процеси в колони. Като щракнете с десния бутон на мишката върху тях, можете да убиете, спрете или възстановите процеса.

Текущите процеси се показват с потребителски акаунти по азбучен ред. Можете да сортирате процесите по всякакви заглавия на полета като CPU, памет и т.н., просто кликнете върху тях и те ще бъдат сортирани; например кликнете върху CPU, за да видите кой процес консумира най-много CPU мощност. За да управлявате процеси, щракнете с десния бутон върху тях и изберете опцията, която искате да направите с процеса. За да управлявате процеса, изберете следните опции.

Убиване на процес с kill и killall

kill и командата killall се използва за убиване / прекратяване на работещ процес. Тези команди могат да се използват и за изпращане на валиден сигнал към работещ процес, като например да се каже на процеса да продължи, да прекрати или препрочете конфигурационните файлове и т.н. Сигналите могат да се пишат и по двата начина чрез цифри или по име. Следват някои често използвани сигнали.

Номер на сигнала Описание

SIGHUP 1 Открива сигнала за затваряне на управляващия терминал.
SIGINT 2 Тълкувано от клавиатура.
SIGQUIT 3 Излезте от клавиатурата.
SIGILL 4 Незаконни инструкции.
SIGTRAP 5 Използва се за проследяване на трапе.
SIGABRT 6 се използва за прекъсване на сигнал от прекъсване (3).
SIGKILL 9 Използва се за изпращане на сигнал за убиване.
SIGTERM 15 Използва се за изпращане на сигнал за прекратяване.
SIGCONT 19,18,25 Използва се за продължаване на процеса, ако бъде спрян.
SIGSTOP 17,19,23 Използва се за спиране на процеси.

Различни стойности на SIGCONT и SIGSTOP се използват в различните операционни системи Unix / Linux. За подробна информация относно сигналите тип man 7 сигнален терминал.

Използване на командата kill за изпращане на сигнал за обработка от PID.

Обърнете внимание на процеса, към който искате да изпратите сигнал за убиване. Можете да намерите идентификатора на процеса (PID) чрез ps или top команда.

PID ПОТРЕБИТЕЛ PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND
7780 джим 20 0 12596 4364 3460 R 33.3 3.2 13:54:12 отгоре

Най-добрият процес отнема 33.3% от процесора. Ако искате да убиете този процес, за да спестите използването на процесора, ето няколко начина да завършите този процес с командата kill.

[имейл защитен]: ~ $ kill 7780
[имейл защитен]: ~ $ kill -15 7780 или $ kill -SIGTERM 7780
[имейл защитен]: ~ $ kill -9 7780 или $ kill -SIGKILL 7780

Използване на командата killall за изпращане на сигнали към процес по име.

С командата killall не е нужно да търсите идентификатор на процеса; можете да изпратите сигнал за убиване на процес по име, а не на идентификатор на процеса. Освен това може да убие повече процеси, отколкото искате, ако не сте внимателни, напр.ж., „Killall chrome“ ще унищожи всички процеси на хром, включително тези, които не искате да убиете. Понякога е полезно да се убиват едноименни процеси.

Подобно на командата kill, можете да въведете сигналите по име или по номер в командата killall. Убийте всеки работещ процес с командата killall; трябва само да въведете името му и сигнала, който искате да изпратите. д.ж., изпратете сигнал за убиване процес firefox с помощта на командата killall, напишете командата по-долу.

[имейл защитен]: ~ $ killall -9 firefox

или

[имейл защитен]: ~ $ killall SIGKILL хром

Промяна на приоритета на процеса с nice и renice

Всеки процес във вашата Linux система има отлична стойност и е между -19 до 20. Той реши кой процес ще получи повече достъп до процесора в системата. Колкото по-ниска е стойността на nice, толкова по-голям достъп има процесът до процесора. Подобно на -16 хубави стойности имат повече достъп до процесора, отколкото 18 хубави стойности. Само потребител с root права може да присвои отрицателна стойност на nice. Нормалният потребител може да присвоява стойността на „nice“ само между 0 и 19. Редовен потребител може да присвоява само по-високи хубави стойности и на собствените си процеси. Потребителят на root може да зададе всяка хубава стойност за всеки процес.

Ако искате да дадете процес, по-достъпен за използването на процесора, като зададете хубавата стойност, въведете следната команда.

[имейл защитен]: ~ $ хубаво +3 хром

И възстановете процеса

[имейл защитен]: ~ $ renice -n -6 3612

Заключение

Ето ръководството за управление на вашата Linux система с ps, top, lsof, pstree, pkilll, kill, killall, nice, renice и т.н. Някои процеси консумират по-голямата част от използването на процесора и RAM; знанието как да ги управлявате увеличава скоростта и производителността на вашата система и ви дава по-добра среда за по-ефективно изпълнение на всички процеси, които искате.

Топ 5 продукти за ергономична компютърна мишка за Linux
Продължителната употреба на компютър причинява ли болка в китката или пръстите? Страдате ли от схванати стави и постоянно ли ви се налага да си ръкува...
Как да променяте настройките на мишката и тъчпада с помощта на Xinput в Linux
Повечето дистрибуции на Linux се доставят с библиотека “libinput” по подразбиране за обработка на входни събития в системата. Той може да обработва вх...
Пренастройте бутоните на мишката си по различен начин за различен софтуер с X-Mouse Button Control
Може би се нуждаете от инструмент, който може да промени контрола на мишката с всяко приложение, което използвате. Ако случаят е такъв, можете да изпр...