Re: lug-bg: Apache спиране на трансфер + лог
- Subject: Re: lug-bg: Apache спиране на трансфер + лог
- From: Georgi Chorbadzhiyski <gf@xxxxxxxxxxx>
- Date: Tue, 17 Oct 2006 12:09:10 +0300
- Delivered-to: lug-bg-list@xxxxxxxxxxxxxxxxxx
- Delivered-to: lug-bg@xxxxxxxxxxxxxxxxxx
- Organization: Unix Solutions Ltd. (http://unixsol.org)
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
Не го използвайте в този вид моля, защото не отговарям за грешките, които са
очевадни. :-)
--
Georgi Chorbadzhiyski
http://georgi.unixsol.org/
|