В прошлой статье из цикла «Краткий путь к системе Linux/Debian GNU 8.x» мы вас познакомили с вводной частью управления процессами. Так же немного изучили команду ps, ее опции и аргументы, плюс ко всему ознакомились с управлением вывода текста на экран. Сегодня будем более подробно углубляться в материал.
Команда kill в Linux.
Или как она по-другому звучит — убить. Она была вынесена в отдельный подраздел, потому что в системах Linux, может использоваться по разному, имея множество различных привязок.
Процессы в Linux имеют возможность обмениваться так называемыми «сигналами» с ядром и другими процессами. При получении сигнала процессом, управление передается подпрограмме его обработки, или ядру, если такой подпрограммы нет. В Linux имеется команда kill, которая позволяет послать заданному процессу любой сигнал. Список сигналов можно получить по команде:
1 |
kill –l |
В результате выполнения этой команды вы увидите список номеров и названий сигналов. Для того, чтобы послать определенный сигнал выбранному процессу, нужно ввести:
1 |
kill < -номерсигнала > номер PID выбранного процесса |
Например, нам нужно завершить работу приложения Midnight Commander (mc).
- Определяем идентификатор процесса mc:
1 |
ps –A|grep mc |
Пусть PID= 11597
- Далее посылаем сигнал SIGQUIT (номер 3):
1 |
kill -3 11597 |
После этого процесс mc обработает сигнал SIGQUIT и нормально завершится. Однако, если mc “завис”, то, завершиться он не сможет, поскольку подпрограмма обработки сигнала SIGQUIT не получит управление. В таких случаях используется сигнал под номер 9 (SIGKILL), который обрабатывается непосредственно ядром операционной системы, и принудительно завершающий указанный процесс:
1 |
kill -9 11597 |
Если в команде kill номер сигнала не был указан, то используется SIGKILL, т.е. предыдущую команду можно было ввести как:
1 |
kill 11597 |
При завершении процесса завершатся и порожденные им процессы!
Команды nice и renice в Linux
Эти команды позволяют изменять приоритет процесса и работают они достаточно интересным образом. При запуске какого-либо процесса, его приоритет задается значением родительского процесса, например, терминала xterm или командной оболочки shell. Команда nice позволяет запустить процесс с приоритетом, равным сумме родительского (например 8) и числа, задаваемого в качестве опции команды nice:
1 2 |
nice -<число> команда nice -4 mc – запустит mc с приоритетом = 8+4=12 |
Команда renice используется для изменения уже запущенного процесса:
1 2 |
renice <число> -p PID renice 4 –p 11597 – данная команда установит значение приоритета для процесса с идентификатором 11597 равным 4 |
После выполнения, renice выдаст информационную строку результата:
1 |
11597: old priority 12, new priority 4 – старый приоритет 12, новый 4. |
Задание нулевого и отрицательного приоритета возможно только с правами суперпользователя (root).
Перечень наиболее часто используемых команд и их описание для Linux
Существуют так же системные команды, которые используется для настройки системы, просмотра логов и т.п., есть команды, которые нужны для просмотра и управления процессами, и есть команды для работы с файлами и каталогами. Я разбил их на 4 части:
-
Команды для работы с файлами и каталогами Linux:
pwd — отображает путь текущего каталога
cd — перейти в указанный каталог
ls — отображает список файлов каталога, с ключом –l показывает дополнительные сведения о файлах.
cp — копирование файлов/папок
mv — перемещение файлов/папок
mkdir — создать папку
rm — удаляет файлы/папки, с ключом –r удаляет и все вложенные папки, с ключом –f удаляет открытые файлы или каталоги
rmdir — удаление пустой папки
chmod — позволяет изменить права доступа к файлу
chown — позволяет сменить владельца файла или каталога
find — найти файл. Задается исходный путь для поиска и шаблон поиска, find / — name.X*- команда будет искать файла от корневого каталога, содержащие в имени символы .X
which — отображает полный путь исполняемого файла, доступного в данной оболочке, например which ifconfig
touch — изменить временные отметки файла. Удобно использовать для создания пустых файлов, например, touch myfile создаст пустой файл myfile
-
Системные команды Linux:
Эти команды обычно используются от имени суперпользователя (с командой sudo, как я выяснил в Дебиан 8.5 командой su):
reboot — перезагрузка системы.
poweroff — выключение компьютера
reset/clear — очищает окно терминала
passwd — сменить свой пароль, а суперпользователю — поменять пароль любого пользователя
users — отобразить список пользователей, вошедших в систему
dpkg — установка, удаление или обновление программного обеспечения в дистрибутивах Debian, Ubuntu и т.п. Внимание! Данная команда предназначена только для данного семейства, для продуктов RedHat, Fedora и т.п., используется другая команда.
Apt-get — установка, удаление или обновление программного обеспечения в дистрибутивах на основе Debian (Ubuntu, Mint и т.п.)
-
Команды управления процессами Linux:
ps — отображает список текущих активных процессов
lsof — отображает список открытых файлов процесса или пользователя
strace — отображает список системных вызовов (8.5 не работает)
last — отображает историю перезагрузок и регистраций пользователей в системе
kill — посылает сигнал процессу, обычно используется для принудительного завершения работы процесса
killall — завершение работы всех процессов, имена которых заданы параметром командной строки
top — отображение списка текущих процессов и интерактивное управление ими
-
Сетевые команды Linux:
Ifconfig/ip aip — конфигурация сетевых интерфейсов
route — таблица маршрутизации
ifup/ifdown — включает или выключает сетевой интерфейс (работает только с правами суперпользователя)
ip — просмотр или изменение параметров конфигурации протокола IP(если точнее данная команда вызывает список опций и функций данной команды)
netstat — отображает состояние сетевых соединений
arp, ping, nslookup, traceroute — наиболее часто используемые команды сетевой диагностики.
На этом вводная часть заканчивается, далее мы с вами начнем разбираться с файловой системой и репозиториями. А пока подписывайтесь на наш канал на Youtube, страницу Facebook, Twitter, и конечно же, группу ВКонтакте! Не забывайте оставлять комментарии и задавать вопросы, на которые мы с радостью ответим!
Следующая статья — Краткий путь к системе Debian 8.x (Часть 4)
Предыдущая статья — Краткий путь к системе Debian 8.x (Часть 2)