Назад | Перейти на главную страницу

Можно ли убить команду после тайм-аута, если не удалось?

Я бы хотел использовать mbuffer для репликации ZFS, но для этого мне нужно запустить ее в режиме прослушивания на целевом хосте. Что бы я сделал с главного хоста

ssh 10.10.10.11 mbuffer -s 128k -m 1G -I 9090 | zfs receive tank3/pro4

mbuffer никогда не будет тайм-аут, но завершится успешно, когда репликация завершится.

Вопрос

Возможен таймаут mbuffer если он не вернул успех, например, 2 минуты?

Там есть лимит времени утилита в портах FreeBSD для ограничения времени выполнения любой команды. Если тайм-аут сработал, команда будет убита.

Вы также можете запустить mbuffer с помощью универсальной команды, которая использует SSH в качестве транспорта. Не проблема, если пункт назначения удален ... больше потери производительности, если он локальный ...

zfs отправить tank3 / pro4 @ снимок | mbuffer -q -v 0 -s 128k -m 1G | ssh root@10.10.10.11 'mbuffer -s 128k -m 1G | zfs получает tank3 / pro4 '

Если производительность является проблемой, вы можете быть связаны шифрованием ЦП и SSH. Для этого есть пара обходных путей ...

Да, используйте сценарий оболочки для запуска процесса mbuffer, запишите PID, связанный с mbuffer, оставьте сценарий в спящем режиме в течение 2 минут, затем, если PID все еще существует, TERM уничтожьте PID.