Несколько часто встречающихся сигналов перечислены в таблице 3.1. Полный список можно получить по команде kill -l
( list ).
Сигналы Linux Таблица 3.1
№ |
Имя |
Назначение |
Реакция процесса-получателя |
1 |
HUP |
Hangup — отбой |
Демоны перечитывают свои конфигурационные файлы |
2 |
INT |
Interrupt |
Прекратить выполнение (перехватывается) |
3 |
QUIT |
Сильнее, чем INT |
то же |
4 |
ILL |
Illegal instruction. Программная ошибка |
Обработать ошибку. По умолчанию — прекратить выполнение |
8 |
FPE |
Floating point exception Вычислительная ошибка (деление на ноль) |
Обработать ошибку. По умолчанию — прекратить выполнение |
9 |
KILL |
Убить процесс |
Немедленно прекратить выполнение. Не перехватывается |
11 |
SEGV |
Segmentation violation. Попытка доступа к чужой области памяти |
Обработать ошибку. По умолчанию — прекратить выполнение |
13 |
PIPE |
Нет процесса, читающего из конвейера |
Обработать ошибку |
15 |
TERM |
Termination. Завершить процесс |
Корректно завершить выполнение. Перехватывается |
17 |
CHLD |
Завершился дочерний процесс |
Принять возвращенное им значение |
Некоторые сигналы посылаются по нажатии комбинации клавиш. Так, Ctrl+C посылает сигнал INT, a Ctrl+\ (обратный слэш) — сигнал QUIT. Получает эти сигналы тот процесс, который сейчас занимает консоль — например, ожидает вашего ввода.
Команда killносит такое убийственное название потому, что чаще всего используется для принудительного завершения процессов, вышедших из-под контроля, забирающих много ресурсов или просто повисших. По умолчанию она посылает сигнал TERM. Он отличается от сигнала KILL тем, что приказывает процессу завершиться аккуратно, закрыв открытые им файлы, удалив временные и т.п. Сигнал же KILL действует на процесс как выстрел в голову.
Понятно, что для того, чтобы прервать выполнение процесса, нужно быть его хозяином или иметь привилегии суперпользователя.
3.4. Командная оболочка. Bash
Важнейшим из пользовательских процессов является командная оболочка (она же командный интерпретатор, или просто shell). Именно она обеспечивает взаимодействие пользователя с системой в текстовом режиме, позволяя вводить команды. Именно она запускается, когда вы регистрируетесь на текстовой консоли, и предоставляет вам интерфейс командной строки.
Не нужно, увлекшись удобствами графического интерфейса, недооценивать командную строку. Во-первых, многие административные задачи могут быть выполнены только оттуда; во-вторых, командная строка — самое удобное средство автоматизации рутинных процедур.
Командой в Linux считается все, что может быть исполнено: исполняемые файлы, встроенные команды оболочки, псевдонимы команд, пользовательские функции, файлы сценариев (скрипты) — заранее подготовленные последовательности команд в текстовом виде. До сих пор, приводя примеры команд, я не различал их по происхождению, и дальше не собираюсь делать этого, кроме особых случаев.
Оболочка принимает вводимые пользователем команды, обрабатывает, если нужно, их аргументы, отправляет команды на выполнение, принимает возвращаемые ими значения и выполняет определенные действия в зависимости от этих значений. Кроме того, в оболочку встроен язык программирования (командный язык), позволяющий писать сложные разветвленные командные сценарии. Именно командный язык отличает разные оболочки друг от друга, и именно из него исходят пользователи, выбирая любимую и нелюбимую оболочки.
Для Linux разработано много командных интерпретаторов. Вот несколько из них:
sh Bourne shell , оболочка Борна, стандарт для многих UNIX-подобных систем;
bash Bourne Again shell , «еще одна оболочка Борна»;
csh С shell , оболочка Си: синтаксис ее командного языка похож на синтаксис языка С;
tcsh tiny С shell , минимальная оболочка Си;
pdksh public domain Korn shell , общедоступная оболочка Корна;
sash stand-alone shell , автономная оболочка, может быть использована в случае, когда программные библиотеки недоступны.
Список всех установленных в системе программ-оболочек находится в файле /etc/shells
. У меня он выглядит так:
/bin/sh
/bin/bash
/sbin/nologin # это "оболочка" для тех,
# кому запрещен вход в систему
Читать дальше
Конец ознакомительного отрывка
Купить книгу