Запустите приложения сервал и подключите его к текущему терминалу - PullRequest
1 голос
/ 16 июля 2010

Как я могу запустить приложения сервал в одном скрипте и передать вывод на текущий терминал?

Для разработки мне нужен скрипт, который запускает три веб-сервера (на трех портах, конечно) и передает их вывод на текущий терминал.

Трудно остановить эти веб-серверы в конце оболочки. Я должен отправить сигнал или лучше отправить [Ctrl + C] на все веб-серверы.

Надеюсь, ты меня понимаешь; -)

Ответы [ 2 ]

2 голосов
/ 16 июля 2010

РЕДАКТИРОВАТЬ

#!/bin/bash
netstat &
p1=$!
netstat &
p2=$!
netstat &
p3=$!
trap "kill $p1 $p2 $p3" SIGINT
wait $p1 $p2 $p3

Скрипт запускает другие процессы в фоновом режиме и запоминает их идентификаторы процессов.Затем он ждет, пока все они прекратят работу.В то же время, получив SIGINT (то есть ^C), он убьет те процессы, которые затем также прекратят работу скрипта (из-за отсутствия дополнительных действий).Таким образом, ^C, используя ваш скрипт, вы можете уничтожить все фоновые серверные процессы.

О да ... Я использую netstat в качестве длительной команды тестирования.Замените все, что вы хотите запустить.

Наконец, вы можете выбрать, какой сигнал отправлять ваши процессы, с помощью kill.Проверьте man kill для вариантов;Я думаю, что INT (эквивалент ^C) по умолчанию.

1 голос
/ 16 июля 2010
web_server_1 &
ws1=$!
web_server_2 &
ws2=$!
web_server_3 &
ws3=$!
# Kill some time
kill -s SIGINT $ws1 $ws2 $ws3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...