Открытие сокета открывает сокет , который вы видите как дескриптор файла 3 в вашем выводе(socket:[5474494]
). Остальные три файловых дескриптора являются стандартными входными, выходными и ошибочными дескрипторами, которые открываются по умолчанию для любого процесса. В вашем случае они указывают на терминал, на котором запущена программа, поэтому «surni» появляется там, когда вы записываете в файловый дескриптор.
Для записи в сокет нужно использовать соответствующие механизмы, например netcat
в обратном направлении:
echo Hello | nc localhost 9999
или, если вы используете Bash:
echo Hello > /dev/tcp/localhost/9999
Однако похоже, что у вас уже установлено соединение с портом 9999 с использованием другого порта netcat
, поэтому в вашем случае это не сработает. Вам необходимо использовать установленное соединение...
Если вы ожидаете, что долгий -работающий nc
предоставит другим процессам доступ к сокету, вам нужно настроить это , например. с использованием FIFO:
mkfifo socket-input
nc localhost 9999 < socket-input
echo Hello > socket-input
Вы не сообщили команде installp
, на каком устройстве находятся наборы файлов; по умолчанию installp предполагает, что они находятся в /dev/rfd0, где он искал и к которому не мог получить доступ.
Добавьте флаг -d
, указывающий на текущий каталог, если в нем находятся наборы файлов:
installp -agXYD -d. Java71.jre Java71.sdk 2>&1 | tee installp.log
Ссылка:man installp