Intereting Posts
Разрешать только определенные пакеты из одного репо Периодически получать использование ЦП для одного процесса traceroute / mtr из нескольких мест, как мы можем это сделать? (Или альтернативный способ) Как искать файлы поиска и сжимать, если больше 500M Centos 6.5 не может войти в систему с открытым ключом и войти в систему sloooooow Линейный экран Linux Mint по умолчанию перед входом в систему Как установить отображение bash, чтобы не отображать текст vim после выхода? Резервное копирование существующей настройки массива mdadm Как удалить часть имени папки Проблема удаления / замены специального символа ° Некоторые команды не работают в su envirorment Слияние двух файлов и создание нового. файл 1 получил более 100 столбцов, а файл 2 получил 2 Добавить путь к имени файла Как я могу отфильтровать эти «Permission denied» из вывода вывода? Запуск нескольких команд в режиме просмотра

Xinetd: завершение соединения с серверным скриптом

У меня есть служба xinetd, которая является скриптом, и вывод читается netcat на удаленном хосте.

Однако, когда скрипт на сервере выходит, netcat все еще ждет, но ничего не последует. Как закрыть соединение с сервером или отправить «конец файла» или что-то подобное?

Мой сервис:

service myservice { port = 2222 socket_type = stream protocol = tcp wait = no server = /opt/myscript.sh user = root disable = no } 

Мой скрипт:

 #!/bin/sh ##Example: echo "Hello World!" 

Выход Netcat:

 [me@mypc]# nc myhost 2222 Hello World! *blinking cursor forever* 

Выход (хвост) strace nc myhost 2222 :

 connect(3, {sa_family=AF_INET6, sin6_port=htons(2222), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=htonl(0), sin6_scope_id=0}, 28) = -1 EINPROGRESS (Operation now in progress) select(4, [3], [3], [3], {tv_sec=10, tv_usec=0}) = 1 (out [3], left {tv_sec=9, tv_usec=999997}) getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0 select(4, [0 3], [], [], NULL) = 1 (in [3]) recvfrom(3, "Hello World!\n", 8192, 0, 0x████████████, [128->0]) = 13 write(1, "Hello World!\n", 13Hello World! ) = 13 select(4, [0 3], [], [], NULL) = 1 (in [3]) recvfrom(3, "", 8192, 0, 0x████████████, [128->0]) = 0 close(1) = 0 select(3, [0], [], [], NULL 

Он просто останавливается. Затем я должен ^ C, поэтому последняя строка выглядит так:

 select(3, [0], [], [], NULL^Cstrace: Process 6232 detached <detached ...> 

Tcpdump:

 IP6 localhost.36082 > localhost.myservice: Flags [S], seq 3879998021, win 43690, options [mss 65476,sackOK,TS val 3800136568 ecr 0,nop,wscale 7], length 0 IP6 localhost.myservice > localhost.36082: Flags [S.], seq 3455514626, ack 3879998022, win 43690, options [mss 65476,sackOK,TS val 3800136568 ecr 3800136568,nop,wscale 7], length 0 IP6 localhost.36082 > localhost.myservice: Flags [.], ack 1, win 342, options [nop,nop,TS val 3800136568 ecr 3800136568], length 0 IP6 localhost.myservice > localhost.36082: Flags [P.], seq 1:14, ack 1, win 342, options [nop,nop,TS val 3800136571 ecr 3800136568], length 13 IP6 localhost.36082 > localhost.myservice: Flags [.], ack 14, win 342, options [nop,nop,TS val 3800136571 ecr 3800136571], length 0 IP6 localhost.myservice > localhost.36082: Flags [F.], seq 14, ack 1, win 342, options [nop,nop,TS val 3800136571 ecr 3800136571], length 0 IP6 localhost.36082 > localhost.myservice: Flags [.], ack 15, win 342, options [nop,nop,TS val 3800136612 ecr 3800136571], length 0