Как привязать ключ к сигкиллу в bash? - PullRequest
9 голосов
/ 04 декабря 2008

Я занимаюсь разработкой своего приложения (для Linux) и, к сожалению, оно иногда зависает. Я могу использовать Ctrl+C для отправки sigint, но моя программа игнорирует sigint, потому что это слишком далеко. Так что я должен сделать танец процесса убийства:

Ctrl+Z
$ ps aux | grep process_name
$ kill -9 pid

Есть ли способ настроить bash для отправки сигнала уничтожения текущему процессу, когда я нажимаю - скажем - Ctrl+Shift+C?

Ответы [ 3 ]

6 голосов
/ 04 декабря 2008

Я не думаю, что есть какая-то клавиша, которую вы можете использовать для отправки SIGKILL.

Вместо этого будет работать SIGQUIT? Если вы не уловили это, по умолчанию используется дамп процесса. По умолчанию это ^ \. Вы можете увидеть это, запустив:

$ stty -a

в терминале. Стоит сказать:

quit = ^\
4 голосов
/ 04 декабря 2008

Вы можете отправить сигнал SIGQUIT текущему процессу переднего плана, нажав ^ \ (по умолчанию вы можете запустить stty -a, чтобы увидеть текущее значение для quit.)

Вы также можете убить последний фоновый процесс из оболочки, запустив

$ kill %%
2 голосов
/ 04 декабря 2008

Учитывая, что для SIGKILL нет связанного ключа, вы можете создать псевдоним, чтобы сохранить некоторую печать, если SIGQUIT не обрезает его для вас. Во-первых,

Ctrl+Z
$ ps aux | grep process_name
$ kill -9 pid

танец можно суммировать (, если есть только один экземпляр процесса, который вы хотите убить ) как

Ctrl+Z
$ pkill -9 process_name

если ваш вариант использования всегда идет на приостановку, а затем на уничтожение, вы можете создать псевдоним для уничтожения последнего запущенного процесса, как

$alias pks="pkill -9 !!:0"

Добавьте этот псевдоним в ваш ~ / .bash_profile.

...