Остановка контейнера с использованием пользовательского сигнала по номеру
На предыдущем шаге мы остановили контейнер, используя имя сигнала (SIGTERM
). В этом шаге мы научимся останавливать контейнер, указывая номер сигнала.
Каждый сигнал имеет соответствующий номер. Например, SIGKILL
— это сигнал 9, а SIGTERM
— сигнал 15. Список сигналов и их номеров можно посмотреть в Linux с помощью команды kill -l
:
kill -l
Эта команда выведет список имён сигналов и их соответствующих номеров.
Теперь давайте запустим ещё один контейнер, который будет работать постоянно, как в предыдущих шагах:
docker run -d ubuntu sleep infinity
Получите ID или имя этого нового работающего контейнера с помощью docker ps
:
docker ps
Теперь мы используем команду docker kill
с флагом -s
, но на этот раз укажем номер сигнала вместо имени. Используем сигнал номер 9, который соответствует SIGKILL
. Замените <container_id_or_name>
на реальный ID или имя вашего контейнера:
docker kill -s 9 <container_id_or_name>
Эта команда отправляет сигнал SIGKILL
(номер 9) основному процессу указанного контейнера. Как упоминалось ранее, SIGKILL
немедленно завершает процесс.
Чтобы убедиться, что контейнер остановлен, снова выполните docker ps
:
docker ps
Контейнер больше не должен отображаться в списке работающих. Также можно использовать docker ps -a
для просмотра его статуса — он должен быть "Exited".
Использование номеров сигналов может быть полезно при написании скриптов или когда требуется точное указание отправляемого сигнала.