Solaris: Socket lauscht auf einem Port (entspricht /etc/xinetd.d unter Linux)

Solaris: Socket lauscht auf einem Port (entspricht /etc/xinetd.d unter Linux)

Ich habe ein Skript vorbereitet, das eine Anfrage an einem Server-Port akzeptiert, dann Benutzereingaben verarbeitet, eine Ausgabe über denselben Port bereitstellt und dann beendet wird. Das Skript läuft nicht immer, sondern startet, wenn ein bestimmter Port vom Client geöffnet wird. Die (funktionierende) Konfiguration auf meinem Linux-Rechner ist diese:

/etc/services
    test_socket   9876/tcp    # TestSocket

/etc/xinetd.d/test_socket
    # default: on
    # description: blah blah blah
   service test_socket
   {
      port        = 9876
      socket_type = stream
      protocol    = tcp
      wait        = no
      user        = root
      server      = /export/home/stefano/do_something.php
      instances   = 20
   }

Sobald ein Client den Port 9876 öffnet, beginnt das Skript „do_something.php“, eingehende Nachrichten anzunehmen, sie zu verarbeiten und ein Ergebnis als Ausgabe auszugeben, bevor die Kommunikation beendet und geschlossen wird.

Ich möchte die obige Architektur auf eine Solaris 10-Maschine migrieren/replizieren.

Zu diesem Zweck habe ich denselben Wert in derselben Servicedatei konfiguriert:

/etc/services
    test_socket   9876/tcp    # TestSocket

Aber wie kann ich dann ein Manifest erstellen, um dasselbe Verhalten zu reproduzieren, nachdem inetd.d unter Solaris10 verworfen und durch svc ersetzt wurde?

Ich habe versucht, die Dokumentation zu durchsuchen, konnte jedoch nichts finden, das bei Bedarf gestartet wird, wenn der Client die Kommunikation über den Serverport anfordert.

Kann mir jemand helfen?

Antwort1

inetd.confSie müssen zunächst eine Stildatei mit Ihrer Konfiguration erstellen . Dies sollte ziemlich unkompliziert sein und etwa so aussehen:

test_socket stream tcp nowait root /export/.../do_something.php do_something.php

Führen Sie dann diesen Befehl aus, um die Dienstbeschreibung zu importieren smf.

inetconv -i inetd.conf-style-file

Wenn Sie zunächst einen Blick darauf werfen möchten, was ohne den Import erstellt würde, können Sie Folgendes ausführen:

inetconv -n -i inetd.conf-style-file -o /tmp

smfBeachten Sie , dass Sie den Dienst nach dem Import in über dasinetadmBefehl, zB:

inetadm -e svc:/network/test_socket/tcp:default # enable the service
inetadm -d svc:/network/test_socket/tcp:default # disable the service
inetadm -l svc:/network/test_socket/tcp:default # list the service properties

verwandte Informationen