Solaris: 포트에서 수신 대기하는 소켓(Linux에서는 /etc/xinetd.d와 동일)

Solaris: 포트에서 수신 대기하는 소켓(Linux에서는 /etc/xinetd.d와 동일)

서버 포트에서 요청을 수락한 다음 사용자 입력을 처리하고 동일한 포트를 통해 출력을 제공한 다음 종료되는 스크립트를 준비했습니다. 스크립트가 항상 실행되는 것은 아니지만 클라이언트가 특정 포트를 열면 시작됩니다. 내 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' 스크립트는 들어오는 메시지를 받아들이고 처리한 후 통신이 종료되기 전에 결과를 출력으로 제공합니다.

위 아키텍처를 Solaris 10 시스템으로 마이그레이션/복제하고 싶습니다.

목적을 위해 동일한 서비스 파일에 동일한 값을 구성했습니다.

/etc/services
    test_socket   9876/tcp    # TestSocket

그런데... inetd.d가 Solaris10에서 해제되고 svc로 대체되었으므로 동일한 동작을 재현하는 매니페스트를 어떻게 만들 수 있습니까?

문서 검색을 시도했지만 클라이언트가 서버 포트를 통해 통신하도록 요청할 때 요청 시 시작된 항목을 찾을 수 없었습니다.

누구든지 나를 도와줄 수 있나요?

답변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

관련 정보