ldd
вывод показывает это bash
ожидание должно найти свои библиотеки в /lib64
, нет /lib
. Кроме того, это означает, что необходимо скопировать их с /lib64
в соответствующий каталог в тюрьме. Те же файлы найдены в /lib
не будет работать.
Одна из более тривиальных услуг, которую я могу себе представить, это запуск одной из них из xinetd. Преимущество заключается в том, что xinetd сам по себе относительно легкий, но он все равно будет обрабатывать все сетевые данные, включая протоколирование и ограничения безопасности, такие как ограничение запросов, TCP-обертки и т.д.
Установите xinetd, когда он еще не установлен, и определите пользовательскую службу типа /etc/xinetd.d/helloworld
:
service helloworld
{
disable = no
port = 1234
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/local/bin/hello-world.sh
server_args = test
instances = 1
type = unlisted
}
Перезагрузите/перезапустите xinetd, и вы сможете протестировать его с помощью telnet localhost 1234
.
На странице руководства man xinetd.conf
имеется довольно хорошее описание доступных опций.
Я бы сделал это в BASH с помощью некоторых простых nc
команд:
#!/bin/bash
nc -k -l -p PORT > tempfile
while true
do
if cat tempfile | grep request;
then
# Execute checker script
# Reply back with nc
: > tempfile # Clear tempfile
fi
sleep 1
done
Это также потребовало бы настройки клиента с помощью nc
. Может быть, для получения ответа Success также потребуется настройка команды прослушивания nc
на клиенте.
Этот скрипт далек от завершения, и вы также должны написать клиент для него, но он может дать вам некоторые идеи.
Основным здесь является использование nc
. С его помощью можно настраивать простые клиент-серверные архитектуры.