Я подготовил сценарий, который принимает запрос на порте сервера, затем обработайте ввод данных пользователем, обеспечивает вывод через тот же порт и затем умирает. Сценарий не всегда работает, но запускается, когда определенный порт открыт клиентом. (Рабочая) конфигурация на моей машине 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, как я могу создать декларацию для репродуцирования того же поведения?
Я попытался искать документацию, но я не смог узнать что-либо, что имеет, запускаются по требованию, когда клиент просит связываться через порт сервера.
Кто-либо может помочь мне?
Сначала вам нужно создать файл стиля 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