интеллектуальный тонкий старт с псевдонимом порта для bash - PullRequest
0 голосов
/ 29 апреля 2010

Мне нужен один псевдоним (TS), который запускает мой локальный сервер разработки. скрипт должен проверить наличие открытого порта, начиная с 3000, и использовать первый доступный порт. Кроме того, для некоторых сайтов требуется файл-стойка, что делает необходимость в -R config.ru. этот скрипт должен проверить текущий каталог для файла config.ru и добавить его к псевдониму, если он есть.

В настоящее время, чтобы запустить локальную среду разработки, я запускаю:

alias  ts="thin -R config.ru -p 3000 start"

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

alias  ts1="thin -R config.ru -p 3001 start"

1 Ответ

1 голос
/ 29 апреля 2010

Ну, вы могли бы сделать что-нибудь умное и посмотреть, какие порты уже связаны, используя netstat и команду типа

netstat -anp | grep LISTEN | awk '{print $4}' | sed s/".*:"//g | sort -n -u

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

for ((port=3000; port <= 3010 ; port++)); do
   if thin -p $port start; then break; fi
done
...