На сервере, который всегда подключен, используйте это в crontab:
@reboot nc -k -l 1234 < /tmp/fifo.fifo
На клиенте, который не всегда находится в сети или включен, используйте эту команду:
nc -d $IP_OF_SERVER 1234 > /tmp/fifo.fifo & $SOME_COMMAND
Сервер всегда прослушивает соединение на указанном порту (благодаря параметру -k), клиент просто подключается к серверу, когда это необходимо.
Я использую это для MPD и его визуализатора FIFO. MPD работает на удаленном хосте, но мой клиент MPD работает локально (я использую ncmpcpp).
Это важная часть конфигурации ncmpcpp на локальном хосте:
mpd_host = "$IP_OF_SERVER" visualizer_fifo_path = "/tmp/fifo.fifo"
Это важная часть конфигурации mpd на удаленном сервере:
audio_output { […] path "/tmp/fifo.fifo" […] }
Запуск команды 'nc' на моем локальном компьютере, похоже, использует очень большое количество ресурсов… ~ 100% производительности моего процессора.