Солярис: сокет, слушающий на порте (/etc/xinetd.d эквивалентный на Linux)

Я подготовил сценарий, который принимает запрос на порте сервера, затем обработайте ввод данных пользователем, обеспечивает вывод через тот же порт и затем умирает. Сценарий не всегда работает, но запускается, когда определенный порт открыт клиентом. (Рабочая) конфигурация на моей машине Linux - этот:

/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
   }

Однажды клиентский открытый порт:9876, 'do_something.php' сценарий начинает принимать входящее сообщение, обработайте его и дайте результат как вывод прежде, чтобы умереть и закрыть коммуникацию.

Я хотел бы перемещать/копировать вышеупомянутую архитектуру в Солярис 10 машин.

Для цели я настроил то же значение на том же сервисном файле:

/etc/services
    test_socket   9876/tcp    # TestSocket

Но затем... быть inetd.d отклонило на Solaris10 и замененный svc, как я могу создать декларацию для репродуцирования того же поведения?

Я попытался искать документацию, но я не смог узнать что-либо, что имеет, запускаются по требованию, когда клиент просит связываться через порт сервера.

Кто-либо может помочь мне?

0
задан 30 September 2015 в 16:00
1 ответ

Сначала вам нужно создать файл стиля inetd.conf с вашей конфигурацией. Это должно быть довольно просто, например:

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

Затем выполните эту команду, чтобы импортировать описание этой службы в smf .

inetconv -i inetd.conf-style-file

Если вы хотите сначала посмотреть, что будет создано без импорта, вы можете запустить:

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

Обратите внимание, что после импорта в smf вы управляете службой с помощью команды inetadm , например:

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
1
ответ дан 4 December 2019 в 16:49

Теги

Похожие вопросы