Вопрос: Как запустить несколько приложений в одной сессии терминала и потом сразу же удобно их всех закрыть?
Описание:
Короче возникла проблема с тем, что хочу открыть одновременно несколько приложений в одном терминале, но есть некоторые проблемы
Приложения эти вешаются на свои порты поэтому при их открытии нужно так же успешно их закрыть
Понятное дело, что нужно пользоваться работами, но я столкнулся с тем, что их не очень удобно закрывать, т.е. я написал скрипт, который запускает мои приложульки в фоне:
#!/bin/sh
make user-service&
make payment-service&
make gateway-service&
ну и так далее
И запускаю через source script.sh, но закрывать эти работы автоматически все сразу выходило не очень. Нужно писать отдельный скрипт, который вычленяет номера работ и киляет их, пытался сделать что-то типо такого(
jobs | sed 's/\].*//g' | sed 's/\[/%/g' | xargs kill
Но килл говорит, что «%1» процесс не существует, хотя в работах он нет
В инете варики типо jobs -ps или kill $(jobs -p) не работают
Далее пытался через tmux и его сессии зафигачить все, но опять же столкнулся с проблемой. Написал следующий скрипт:
#!/bin/sh
# Init tmux session
tmux new -s auth -d 'make auth-service'
tmux new -s gateway -d 'make gateway-service'
tmux new -s hotel -d 'make hotel-service'
tmux new -s payment -d 'make payment-service'
tmux new -s loyalty -d 'make loyalty-service'
tmux new -s reservation -d 'make reservation-service'
tmux
Все суперски работает, в разных сессиях открывается, НО почему-то когда делаю tmux kill-server или tmux kill-session -a, tmux и все его сессии успешно завершаются, а процессы перекидываются на 1
Мне вариант с tmux очень нравится, потому что удобно можно переключаться между логами разных приложений, поэтому был бы очень рад, если бы кто-нибудь дал совет как избежать перевязку процессов из сессий тмукс на процесс 1
Вариант с докер компоузом не предлагать, т.к. он удобен для развертки, но для отладки вообще не подходит. После каждого изменения приходится ждать, когда он там пересоберется(