В прошлой статье из цикла «Краткий путь к системе 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)