IkaR49
@IkaR49

Почему скрипт, запускаемый inetd, выполняется бесконечно?

Задача: при открытии ссылки в браузере на компьютере должен запуститься скрипт. Обязательно использовать inetd.

Прописываю в /etc/services
myscript 1337/tcp
В /etc/inetd.conf
myscript  stream  tcp  nowait  root  /path/to/script.sh

Содержимое /path/to/script.sh
#!/bin/sh
echo "It's work!" >> test.txt

Открываю в браузере страницу localhost:1337, проверяю наличие файла - он есть. Но в него постоянно записываются новые строки "It's work!". Обрываю соединение в браузере, закрываю весь браузер, строки всё равно добавляются, файл бесконечно растёт.

Почему скрипт начинает вызываться постоянно?
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Slava_ll
так сяк
На сколько я помню initd именно для того чтоб держать сервис пока есть активные соединения, потом его завершать, но это не факт, что остановка сервиса будет моментальной. Зависит от настройки ОС. Соответственно и скрипт выполняется постоянно и очень много раз в секунду.
Думаю нужно скрипт писать, чтоб только один раз выполнился и принудительно завершался или убивал процесс сервиса.

а как средствами консоли отправить всего один пакет?


Для этого должна подойти утилита curl.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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