Плодится процесс.

12
M
На сайте с 31.03.2011
Offline
74
959

Всем привет. Небольшой антиддос скрипт - парсит каждые 2 секунды tcpdump, если находит IP, превысивший скорость - банит.

Ну так проблема следующего характера.

содержимое .sh скрипта:


echo $$>__dump.pid
rm __fork-in-work.pipe
mkfifo __fork-in-work.pipe
./sa 500
sleep 2
./cmd.sh

cmd.sh не закрывается, а постоянно плодится, забивая тем самым память вдс.

Необходимо сделать, чтобы он банально каждые две секунды перезапускался. Как осуществить?

Заранее, спасибо, с уважением.

hostmaster
На сайте с 26.05.2009
Offline
26
#1

из вашего описания не очень понятно, по этому попробую угадать.

приведенный вами скрипт запускается периодически, а так как cmd.sh не завершается то в результате в памяти висит куча копий cmd.sh. я прав ?

I'm lost without tcpdump
M
На сайте с 31.03.2011
Offline
74
#2
hostmaster:
из вашего описания не очень понятно, по этому попробую угадать.

приведенный вами скрипт запускается периодически, а так как cmd.sh не завершается то в результате в памяти висит куча копий cmd.sh. я прав ?

Да, именно так ...

Raistlin
На сайте с 01.02.2010
Offline
247
#3

Так у вас жеж рекурсия (!). Ясен пень, будет плодиться.

HostAce - Асы в своем деле (http://hostace.ru)
hostmaster
На сайте с 26.05.2009
Offline
26
#4

кстати хороший вопрос поднял Raistlin, вы привели код скрипта cmd.sh ?

M
На сайте с 31.03.2011
Offline
74
#5

Если присмотреться ... То это и есть пример cmd.sh скрипта)

echo $$>__dump.pid

rm __fork-in-work.pipe

mkfifo __fork-in-work.pipe

./sa 500

sleep 2

./cmd.sh

Кое-что выделено жирным шрифтом.

hostmaster
На сайте с 26.05.2009
Offline
26
#6

и о чем интересно нам должно сказать ваше кое-что ?

exec ./cmd.sh

а лучше while true и забыть про рекурсию в скриптах

Raistlin
На сайте с 01.02.2010
Offline
247
#7

Или вот так: ./cmd.sh&

iHead
На сайте с 25.04.2008
Offline
137
#8
Raistlin:
Или вот так: ./cmd.sh&

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

и о какой рекурсии речь, если ТС не выложил название файла.

Рекомендуемый хостинг партнер 1С-Битрикс (https://www.ihead.ru/bitrix/), PHP-хостинг (https://www.ihead.ru/php/), доверенный партнер RU-CENTER (https://www.ihead.ru/news/573.html), официальный представитель REG.RU в Кирове (https://www.ihead.ru/news/851.html)
Raistlin
На сайте с 01.02.2010
Offline
247
#9

iHead, Ну если это один и тот же скрипт, тогда скрипт-родитель просто завершит работу, или я ошибаюсь?

hostmaster
На сайте с 26.05.2009
Offline
26
#10
Raistlin:
iHead, Ну если это один и тот же скрипт, тогда скрипт-родитель просто завершит работу, или я ошибаюсь?

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

и еще в моем варианте PID процесса не меняется, а в вашем будет другой при каждой итерации

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий