8

Я видел следующую команду:

$ kill %1

Какая польза от этого утверждения?

2 ответа2

13

Коротко говоря,

Это значит убить задание номер 1, а не процесс номер один.

Задания могут быть перечислены с помощью команды jobs .

В более широком смысле это относится к любой используемой вами оболочке, и синтаксис может отличаться от оболочки к оболочке.

Используя оболочку bash, пользователь может одновременно выполнять несколько процессов (заданий), родительским процессом которых является используемая оболочка. Основы управления заданиями Google bash

Встроенная команда kill используется для отправки сигнала одному из этих конвейеров заданий. Если конкретный сигнал не указан, используется SIGTERM, который обычно завершает (убивает) задание, следовательно, имя уничтожает. Но любой сигнал может быть указан, некоторые из которых могут каким-то образом сбросить процесс или вызвать неубиваемое поведение.

Наконец,% 1 является одним из способов (из многих!) указать, на какую работу вы хотите отправить сигнал. % 1 относится к заданию поверх стека фоновых заданий.

6

Когда вы создаете фоновый процесс, например:

# find / &
[1] ....

# ls -lr /usr &
[2] ....

Теперь, здесь есть два процесса, работающих в фоновом режиме и подключенных к текущему терминалу. Если вы это сделаете: убить% 1

первая команда 'find', приведенная выше, будет прервана. Как сказал Андерс, вы можете перечислить текущие фоновые процессы на терминале и убить их:

# jobs
[1] find / ...
[2] ls -lr ...

# kill %1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .