Я пытаюсь найти хороший способ привязать файл на удаленном хосте. Это во внутренней сети машин Linux. Требования:
Должен хорошо себя вести (без дополнительных процессов или продолжения производства)
Не требует чьего-либо домашнего Perl-модуля для домашних животных.
Может вызываться через Perl.
Если возможно, не требуется настраиваемый скрипт или утилита на удаленном компьютере (обычные утилиты linux подходят)
Решения, которые я пробовал, обычно такого рода
ssh remotemachine -f <some command>
"какая-то команда" была:
tail -f logfile
Основной хвост не работает, потому что удаленный процесс продолжает записывать вывод в терминал после того, как локальный процесс ssh умирает.
$socket = IO:Socket::INET->new(...);
$pid = fork();
if(!$pid)
{
exec("ssh $host -f '<script which connects to socket and writes>'");
exit;
}
$client = $socket->accept;
while(<$client>)
{
print $_;
}
Это работает лучше, потому что после выхода из локального процесса на экран не выводится, но удаленный процесс не обнаруживает, что его сокет не работает, и он живет бесконечно.