4

В интерактивной консоли, такой как irb , иногда что-то идет не так, и консоль перестает отвечать на запросы . Одним из решений является приостановить процесс, а затем убить его.

Чтобы приостановить процесс, я могу нажать Control+Z Чтобы убить этот процесс, я могу запустить ps -ef | grep 'irb' чтобы вывести список всех процессов и показать только те из них, которые содержат 'irb', затем получить идентификатор процесса из этого списка и ввести kill [insert PID here] .

Это хлопоты. Я знаю, что есть способ просто приостановить процесс, а затем набрать kill [some symbol here] , с символом, обозначающим «последний процесс, который был приостановлен».

Что означает символ командной строки для "PID последнего приостановленного процесса"?

2 ответа2

14

Возможно, вы ищете $!переменная (руководство bash, раздел Специальные параметры).

Однако вам не нужен PID - встроенная команда kill также принимает идентификаторы заданий, такие как %2 , которые отображаются, когда вы нажимаете Ctrl-Z или вводите jobs . Вы можете использовать % , %+ или %% для ссылки на последнее задание. (Другие возможности есть в руководстве по bash, раздел Job Control .)

>>>
[4]+  Stopped                 python
$ kill %4
1

jobs -p %

Показывает PID последнего приостановленного задания (после нажатия Ctrl+z).

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