firebird:fb_windows_kill
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Následující verze | Předchozí verze | ||
| firebird:fb_windows_kill [2009/06/24 09:48] – vytvořeno pavel | firebird:fb_windows_kill [2019/09/03 11:42] (aktuální) – [Nastavení doby detekce ukončeného klientského spojení] Petr Kristan | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| - | ===== Zabíjení procesů Firebirdu na windows | + | ===== Blokování licencí |
| Po pádu obisu (např. z důvodu přerušení síťového připojení) mohou zůstat na serveru blokovány obis licence běžícími firebird procesy. Standardní timeout spojení na windows je 2 hodiny - po této době se proces automaticky zabije. Tuto dobu je možné zkrátit úpravou registrů pomocí | Po pádu obisu (např. z důvodu přerušení síťového připojení) mohou zůstat na serveru blokovány obis licence běžícími firebird procesy. Standardní timeout spojení na windows je 2 hodiny - po této době se proces automaticky zabije. Tuto dobu je možné zkrátit úpravou registrů pomocí | ||
| - | Manuální zabití | + | ==== Nastavení doby detekce ukončeného klientského spojení ==== |
| + | |||
| + | Doba ukončení spojení = KeepAliveTime + TcpMaxDataRetransmissions*KeepAliveInterval (defaultne 2hod) | ||
| + | |||
| + | === Windows === | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | V registry \HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TCPIP\Parameters\ (doby v minisekundach) | ||
| + | < | ||
| + | | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | |||
| + | === Linux === | ||
| + | |||
| + | / | ||
| + | < | ||
| + | net.ipv4.tcp_keepalive_time=60 | ||
| + | net.ipv4.tcp_keepalive_intvl=10 | ||
| + | net.ipv4.tcp_keepalive_probes=5 | ||
| + | </ | ||
| + | |||
| + | aktivace | ||
| + | |||
| + | <code bash> | ||
| + | sysctl -f --system | ||
| + | </ | ||
| + | |||
| + | Aktualni hodnoty v kernelu | ||
| + | <code bash> | ||
| + | tail / | ||
| + | </ | ||
| + | |||
| + | Zjisteni stavu socketu stav keepalive | ||
| + | < | ||
| + | netstat -t --timer | ||
| + | </ | ||
| + | [keepalive|on|off] (6176, | ||
| + | * a=timer value (a=keepalive timer, when 1st field=" | ||
| + | * b=number of retransmissions that have occurred | ||
| + | * c=number of keepalive probes that have been sent | ||
| + | |||
| + | |||
| + | ==== Ukončení procesů Firebirdu na windows ==== | ||
| + | |||
| + | |||
| + | **Manuální zabití** Firebird procesů, které blokují licence je možné s pomocí [[http:// | ||
| + | |||
| + | ==== Skript na zabití procesů firebird vybrané stanice kill_fb.sh ==== | ||
| + | |||
| + | <code bash> | ||
| + | #! /bin/bash | ||
| + | #pomoci SSH (Putty) se prihlasit na server jako uzivatel ktery ma umoznene sudo na lsof a kill | ||
| + | #a spustit tento script | ||
| + | |||
| + | # IP adresa volajiciho pocitace | ||
| + | CLIENT_IP=$(echo $SSH_CLIENT | awk ' | ||
| + | |||
| + | FB_NAME=" | ||
| + | OPEN_DB=" | ||
| + | for P in $(pgrep $FB_NAME); do | ||
| + | # grepujeme pres vsechny otevrene soubory daneho procesu, hledame ten, ktery otevira licence a zaroven ma socket na IP adresu klienta. Grepujeme pre | ||
| + | if sudo lsof -n -p $P 2>/ | ||
| + | echo "Found process $P $FB_NAME holding DB $OPEN_DB and communicating with $CLIENT_IP, killing the process" | ||
| + | sudo kill $P | ||
| + | exit 0 | ||
| + | fi | ||
| + | done | ||
| + | |||
| + | echo "No process $FB_NAME holding DB $OPEN_DB and communicating with $CLIENT_IP found" | ||
| + | exit 1 | ||
| + | </ | ||
firebird/fb_windows_kill.1245836923.txt.gz · Poslední úprava: 2009/06/24 09:48 autor: pavel