processes unix process control
Управление на процеси в Unix:
В Unix всички инструкции извън ядрото се изпълняват в контекста на процес.
Процесът е последователност от инструкции и всеки процес има блок от контролирани данни, свързани с него. Процесите могат да бъдат манипулирани по начин, подобен на начина, по който файловете могат да бъдат манипулирани.
Например, като ‘ls’ is може да се използва, за да видите списъка с файлове, ‘ps’ може да се използва, за да видите списъка с процеси.
Unix Video # 23:
В този урок ще разгледаме каква информация, свързана с процеса, се съхранява, а също така ще опишем някои команди, които се използват за управление на процеси. Също така ще предоставим кратко описание на начина, по който могат да бъдат отстранени грешките на командните скриптове.
Какво ще научите:
- Информация за процеса на Unix
- Команди за контрол на процеса
- Отстраняване на грешки в Unix
- Препоръчително четене
Информация за процеса на Unix
Таблицата на процесите съдържа информация за всички процеси, които се изпълняват в момента. Основната цел на тази таблица е да управлява ефективно всички работещи процеси.
Забележка: Като мултитаскинг и многопотребителска ОС, Unix ще има много процеси, работещи едновременно.
Таблицата съдържа информация като:
- Идент. № на процеса
- Идент. № на родителския процес
- Състояние на процесите
- Използване на процесора
Процесите в Unix преминават през различни състояния в зависимост от различни обстоятелства. Промените в състоянието могат да се задействат от това дали даден процес трябва да изчака операцията за четене или запис да завърши или когато на друг по-спешен процес трябва да се даде възможност да се изпълни.
Команди за контрол на процеса
Има редица команди, които са на разположение за преглед и манипулиране на процесите. Командата ‘ps’ може да се използва за преглед на информацията за състоянието на процеса.
Команда | ps - дава информация за всички текущи процеси. |
---|---|
Общ синтаксис | $ ps (ОПЦИИ) |
Пример1 | $ ps Дава информация за процеса, включително PID, име на терминал, време на създаване и име на процесите. |
Както беше обсъдено в по-ранен урок, процесите могат да бъдат класифицирани като преден план, фон или демон. Когато команда се изпълнява от терминала, тя работи нормално на преден план. За да стартирате процес във фонов режим, може да се използва бутонът „&“ в края на командата.
Пример:
$ grep “how” file1 > file2 &
Тази команда ще търси редовете, съдържащи шаблона 'как' и ще съхранява изхода във файл2. Ако файл1 е достатъчно голям, може да поискаме да продължим с други действия и да изпълним тази команда във фонов режим. С „&“ в края, тази команда ще се изпълнява като процес във фонов режим.
Възможно е да се спре процес на преден план, като се използва командата ‘^ Z’. Тази команда премества текущия процес на преден план в спряно състояние във фонов режим. Оттам нататък процесът може или да бъде натиснат за възобновяване във фонов режим с помощта на командата ‘bg’, или може да бъде върнат на преден план с помощта на командата ‘fg’.
Всеки процес също е свързан с приоритет. Това се използва, за да се гарантира, че операционната система е в състояние да разпредели справедливо времето за различни задачи по обработка. Командата ‘nice’ може да се използва за намаляване на приоритета на даден процес и по този начин да бъде ‘nice’ за останалите процеси, т.е.
$ хубаво
Този ред ще изпълни посочената команда с по-нисък приоритет - по подразбиране приоритетът ще бъде намален с 10. Командата също така взема параметър, който може да се използва за използване на различно ниво на „приятност“.
Пример:
$ nice -20 ls
Тази команда изпълнява „ls“ с приоритет, намален с 20.
Възможно е също така да увеличите приоритета с отрицателна „приятност“. Това обаче се нуждае от разрешение на суперпотребител.
Когато терминал или сесия за влизане са затворени, той изпраща сигнала SIGHUP към дъщерни процеси. По подразбиране този сигнал ще доведе до завършване на дъщерните процеси. Командата ‘nohup’ може да се използва, за да позволи на командите да продължат да се изпълняват, дори когато сесията за влизане е прекратена.
Пример:
$ nohup soft file1 > file2
С тази команда сортирането на файл1 и записването във файл2 ще продължи, дори ако сме излезли от системата.
Командата ‘kill’ може да се използва за прекратяване на който и да е от процесите в зависимост от разрешенията.
Пример:
$ kill (options)
Тази команда ще прекрати процес с идентификатор на процеса. PID на даден процес може да бъде получен с помощта на командата ‘ps’.
Тази команда ‘at’ се използва за изпълнение на команди на определена дата и час в бъдеще.
Пример:
$ at 8pm sort file1>file2
Отстраняване на грешки в Unix
Unix предоставя редица механизми, които помагат да се намерят грешки във вашите командни скриптове. Тези механизми могат да се използват за преглед на следата от това, което се изпълнява, т.е.последователността, в която се изпълняват командите. Проследяването може да се използва за разбиране и проверка на логиката и контролния поток на скрипта.
=> задайте -v
подробен режим: Задаването на тази опция преди стартиране на команда ще гарантира, че командата, която ще бъде изпълнена, ще бъде отпечатана на stdout преди да бъде действително изпълнена.
=> задайте -x
режим на проследяване на изпълнението: Задаването на тази опция ще покаже всяка команда, докато се изпълнява заедно с нейните аргументи.
уебсайтове, за да гледате аниме безплатно
=> задайте -n
режим без изпълнение: Задаването на тази опция показва грешки, без действително да изпълнявате команди.
Вижте нашия предстоящ урок, за да научите повече за Разширени скриптове на черупки.
Препоръчително четене
- Команди за контрол на процесите на Unix като Ps и Top (Част C)
- Команди на Unix: Основни и разширени команди на Unix с примери
- Команди на Unix за обработка на текст: Unix филтри с примери
- Урок за тръби на Unix: Тръби в програмирането на Unix
- Още Unix филтър и Awk, Sed команди в обработката на текст
- Аргументи на командния ред в скрипта на Unix Shell с пример
- Урок за UNIX за начинаещи (20+ задълбочени видеоклипове за обучение на Unix)
- Как да сравним два файла в Unix: Команди за сравняване на файлове