3

У меня есть что-то вроде:

cd project && python manage.py runserver &
cd utilities && ./coffee_auto_compiler.py

И я хочу, чтобы они оба закрывались по Ctrl-C (или какой-то другой команде). Как я могу это сделать?

РЕДАКТИРОВАТЬ: я пытался использовать jobs -x kill и kill ``jobs -p , но это не убивает то, что мне нужно. Вот что я имею в виду:

moon      8119  0.0  0.0   7556  3008 pts/0    S    13:17   0:00 /bin/bash
moon      8120  6.8  0.4  24568 18928 pts/0    S    13:17   0:00 python manage.py runserver

jobs -p дать мне просто процесс 8119, но мне также нужно закрыть 8120, так как это то, что первая команда открыла.

Если это помогает, команды на самом деле находятся в Makefile, и я хочу, чтобы он запускал два демона одновременно (и как-то закрывал их одновременно). И да, я использую Ubuntu, с Bash

4 ответа4

1

Самый простой способ? так как я не знаю, какой дистрибутив вы используете, я буду считать, что это Ubuntu. система> настройки> сочетания клавиш. нажмите добавить, назовите его, вставьте в ваши команды, как это: "команда1", "команда2" нажмите добавить. нажмите на новый ярлык, установите клавишу быстрого доступа.

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

1

Чтобы убить все фоновые задания, выполняемые под оболочкой Korn (ksh) или Bourne-again (bash), введите:

kill `jobs -p`

В bash вы также можете использовать следующий вариант:

jobs -x kill

источник

1

pstree

а затем уничтожить корневой процесс с помощью kill или pskill, эти команды могут быть недоступны в вашем дистрибутиве

0

Если вы заключаете команды в кавычки:

`cd project && python manage.py runserver` &
`cd utilities && ./coffee_auto_compiler.py` &

и запустить его с интерактивной сессией bash, вы сможете убить их всех с помощью только Ctrl+C.

Но вы не сможете использовать Ctrl+C в терминале и одновременно не убить все команды с обратным тактом, которые запускались с этого терминала.

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