Krótki instruktaż systemd: gniazdka
RTFM: systemd.socket
Do śmieci: inetd, xinetd
Przerobienie naszej usługi na sieciową? Banalnie proste (touchme.socket
):
[Socket] ListenStream=1234
Aktywacja:
# systemctl load touchme.socket Unit touchme.socket added. # netstat -apn | grep 1234 # systemctl start touchme.socket Unit touchme.socket removed. Job 67350 added. Job 67350 removed. Unit touchme.socket added. # netstat -apn | grep 1234 tcp 0 0 :::1234 :::* LISTEN 1/init
Do wyboru obsługa TCP, UDP, SOCK_SEQPACKET i plików FIFO. Od razu możliwość skonfigurowania:
- ograniczenia nasłuchu do konkretnego urządzenia sieciowego
- wielkości backlog
- ustawień podtrzymywania (keep-alive)
- maksymalnej liczby połączeń i wielkości buforów
- ustawień priorytetu, TTL i TOS
- markowania pakietów na potrzeby iptables/tc
- wybór algorytmu kontroli przepływu TCP
systemd
nasłuchuje na wszystkich aktywowanych gniazdach, również
tych w systemie plików. Dzięki temu może startować na żądanie nie tylko demony
sieciowe, ale również te, do których dostęp realizowany jest przez gniazdka
typu /tmp/.s.PGSQL
czy /var/lib/mysql/mysql.sock
.
Przy usługach, które tworzą nową instancję dla każdego połączenia, warto polecenie
w ExecStart=
poprzedzić minusem. Wtedy zniknięcie procesu z
każdego powodu spowoduje usunięcie instancji. Inaczej instancje usług kończących
pracę błędem będą wisiały w systemie, co teoretycznie może doprowadzić do DoSa.
Poprzednio: Cele i migawki; Następnie: Timery.
Archived comments:
pecet 2010-08-05 18:49:32
Link do timerów ci nie działa.
Paweł Ciupak 2010-08-05 19:00:58
> Link do timerów ci nie działa.
No bo pewnie też idzie do śmieci i jest _passe_ ;p.
zdz 2010-08-05 19:01:35
Jutro będzie działał.
Comments
Comments powered by Disqus