Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: Apache спиране на трансфер + лог


  • Subject: Re: lug-bg: Apache спиране на трансфер + лог
  • From: Dean Stoeff <dean@xxxxxxxxxxxx>
  • Date: Tue, 17 Oct 2006 12:21:13 +0300
  • Delivered-to: lug-bg-list@xxxxxxxxxxxxxxxxxx
  • Delivered-to: lug-bg@xxxxxxxxxxxxxxxxxx

Georgi Chorbadzhiyski wrote:
Alexander N. wrote:
Georgi Chorbadzhiyski wrote:
Питах вече в httpd-devel и -users ама никой не може да ми отговори,
та реших, че може би някой из lug-а е по-светнат.

Проблема ми е следният: когато apache трансферира големи файлове и
по някаква причина реша, че искам да прекратя трансфера, какъвто
и сигнал да пращам на httpd-то, което сервира, то или игнорира сигнала
или просто умира, прекратявайки трансфера без да записва нищо
в логовете.
В мануала на апачето пише следното:

    * *"graceful restart" sigusr1 signal*

      zfile kill -s sigusr1 /apache_parent_pid/ or
      zfile kill -s sigusr1 `cat /usr/local/apache/logs/httpd.pid`

      The Apache parent asks its children to exit when they're finished
      with any requests they're currently handling. Then the existing
      parent re-reads the configuration file(s) and creates new children
      to replace the exiting ones.

      "Graceful restart" can be used to pick up new configuration files
      without disrupting traffic.

    * http://httpd.apache.org/docs/1.3/stopping.html

Но май няма да ти свърши работа, защото така може да си го чакаш до утре спре....

Именно. Не ми върши работа защото аз искам да прекъсна трансфера, а не да го
чакам да си спре когато клиента пожелае.

Не ме бийте за следната грозотия, която работи /по-лесно ми беше да я направя нея
вместо да се кривя да компилирам tcpkill ot dsniff/.

Скрипт ugly_tcpkill.sh пуска се

  ugly_tcpkill.sh  PID_OF_HTTPD_PROCESS  IP_OF_CLIENT

#!/bin/sh
lsof -n -i tcp@$2 | grep $1 | tr -s ' ' | cut -d" " -f8 | cut -d">" -f2 | tr : " " | while read IP PORT
do
  iptables -I OUTPUT -p tcp -d $IP --dport $PORT -j REJECT --reject-with tcp-reset
  sleep 2
  iptables -D OUTPUT -p tcp -d $IP --dport $PORT -j REJECT --reject-with tcp-reset
done

Не го използвайте в този вид моля, защото не отговарям за грешките, които са
очевадни. :-)

Аха, само като идея, няма ли да е по добре да се комбинират горните 2. Първо да кажеш на родителския процес да чака да привършат дъщерните процеси и после тях да утрепеш ?



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.