Uživatelské nástroje

Nástroje pro tento web


firebird:fb_windows_kill

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
firebird:fb_windows_kill [2012/11/09 09:37] – [Ukončení procesů Firebirdu na windows] Karel Petrůfirebird:fb_windows_kill [2019/09/03 11:42] (aktuální) – [Nastavení doby detekce ukončeného klientského spojení] Petr Kristan
Řádek 8: Řádek 8:
  
 === Windows ===  === Windows === 
 +
 +[[https://technet.microsoft.com/en-us/library/dd349797(v=ws.10).aspx]]
  
 V registry \HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TCPIP\Parameters\ (doby v minisekundach) V registry \HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TCPIP\Parameters\ (doby v minisekundach)
Řádek 16: Řádek 18:
 </code> </code>
  
-=== Firebird ===+=== Linux ===
  
-tail /proc/sys/net/ipv4/tcp_keepalive_*   (doby v sekundach) +/etc/sysctl.d/local.conf (ubuntu: /etc/sysctl.d/60-local.conf)
- +
-/etc/sysctl.conf+
 <code> <code>
 net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_time=60
Řádek 26: Řádek 26:
 net.ipv4.tcp_keepalive_probes=5 net.ipv4.tcp_keepalive_probes=5
 </code> </code>
 +
 +aktivace
  
 <code bash> <code bash>
-sysctl -a | grep tcp_keepalive +sysctl ---system
-sysctl -p /etc/sysctl.conf+
 </code> </code>
 +
 +Aktualni hodnoty v kernelu
 +<code bash>
 +tail /proc/sys/net/ipv4/tcp_keepalive_*   (doby v sekundach)
 +</code>
 +
 +Zjisteni stavu socketu stav keepalive
 +<code>
 +netstat -t --timer
 +</code>
 +[keepalive|on|off] (6176,47/0/0) -> (a/b/c)
 +  * a=timer value (a=keepalive timer, when 1st field="keepalive"; a=retransmission timer, when 1st field="on")
 +  * b=number of retransmissions that have occurred
 +  * c=number of keepalive probes that have been sent
 +
  
 ==== Ukončení procesů Firebirdu na windows ==== ==== Ukončení procesů Firebirdu na windows ====
Řádek 37: Řádek 53:
 **Manuální zabití** Firebird procesů, které blokují licence je možné s pomocí [[http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx|TCPView od sysinternals]]. V licencích obisu se zjistí IP, které licence blokuje a v TCPView se zabije proces firebirdu, který má na toto IP spojení. Poté už půjde v licencích tyto konexe vymazat. **Manuální zabití** Firebird procesů, které blokují licence je možné s pomocí [[http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx|TCPView od sysinternals]]. V licencích obisu se zjistí IP, které licence blokuje a v TCPView se zabije proces firebirdu, který má na toto IP spojení. Poté už půjde v licencích tyto konexe vymazat.
  
-==== Skript na zabití procesů uživatele ====+==== Skript na zabití procesů firebird vybrané stanice kill_fb.sh ====
  
 <code bash> <code bash>
 #! /bin/bash #! /bin/bash
-#pomoci SSH (Putty) se prihlasit na server - jsou nutna root prava+#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 # IP adresa volajiciho pocitace
Řádek 49: Řádek 66:
 OPEN_DB="licence.fdb" OPEN_DB="licence.fdb"
 for P in $(pgrep $FB_NAME); do  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 pres vice radku, proto parametr -z grepu +  # grepujeme pres vsechny otevrene soubory daneho procesu, hledame ten, ktery otevira licence a zaroven ma socket na IP adresu klienta. Grepujeme pre 
- if lsof -p $P | grep -z "$OPEN_DB" | grep -q "$CLIENT_IP"; then  +  if sudo lsof -n -p $P 2>/dev/null | grep -z "$OPEN_DB" | grep -q "$CLIENT_IP"; then  
- echo "Found process $P $FB_NAME holding DB $OPEN_DB and communicating with $CLIENT_IP, killing the process" +    echo "Found process $P $FB_NAME holding DB $OPEN_DB and communicating with $CLIENT_IP, killing the process" 
- kill $P +    sudo kill $P 
- exit 0 +    exit 0 
- fi+  fi
 done done
  
firebird/fb_windows_kill.1352453848.txt.gz · Poslední úprava: 2012/11/09 09:37 autor: Karel Petrů