8 ответов:
есть специальная переменная для этого в bash:
kill $!$! расширяется до PID последнего процесса, выполненного в фоновом режиме.
вы можете убить по номеру задания. Когда вы ставите задачу в фоновом режиме вы увидите что-то вроде:
$ ./script & [1] 35341это
[1]- это номер задания, на который можно ссылаться следующим образом:$ kill %1 $ kill %% # Most recent background jobдля просмотра списка номеров заданий используйте . Еще от
man bash:существует несколько способов ссылаться на задание в оболочке. Характер
%вводит имя задания. Номер работыnможет быть упоминается как%n. На задание также можно ссылаться с помощью префикса имени, используемого для его запуска, или с помощью подстроки, которая появляется в командной строке. Например,%ceотносится к остановившемусяceработа. Если префикс соответствует нескольким заданиям, bash сообщает об ошибке. Используя%?ce, С другой стороны, относится к любому заданию, содержащему строкуceв командной строке. Если подстрока соответствует более чем одному заданию, bash сообщает об ошибке. Символы%%и%+обратитесь к представлению оболочки о текущем задании, которое является последним заданием, остановленным, когда оно было на переднем плане или запущено в фоновом режиме. С предыдущего места работы может ссылаться с помощью%-. В выходных данных, относящихся к заданиям (например, выходные данные команды jobs), текущее задание всегда помечено символом+, и предыдущая работа с-. Один%(без сопроводительной спецификации работы) также ссылается на нынешняя работа.
следующая команда дает вам список всех фоновых процессов в вашем сеансе, вместе с ПИД. Затем вы можете использовать его, чтобы убить процесс.
jobs -lпример использования:
$ sleep 300 & $ jobs -l [1]+ 31139 Running sleep 300 & $ kill 31139
skill doB
skill- это версия команды kill, которая позволяет выбрать один или несколько процессов на основе заданного критерия.
Это вне темы ответ, но, для тех, кто заинтересован, это может быть ценным.
Как и в ответе @John Kugelman, % связано с спецификацией задания. как эффективно найти? используйте команду less &pattern, кажется, что человек использует меньше пейджера (не уверен), в man bash type &% затем введите Enter, будут отображаться только строки, содержащие"%", чтобы изменить все, введите &. затем вводить.
просто используйте команду killall:
killall taskname
для получения дополнительной информации и более расширенных параметров введите "man killall".
Comments