@kizijo

Это нормально, что при прерывании rsync через ctrl+c пишет в консоли «Broken pipe»?

Добрый день.

Недавно копировал данные на внешний жесткий диск на своем Debian через терминал и в какой-то момент было небходимо остановить процесс. Я нажал ctrl+c - процесс завершился, но среди прочих надписей бала фраза "Broken pipe".

Все ли корректно я сделал, так завершая процесс? Почему вылетает это сообщение и о чем оно говорит?

Спасибо!
  • Вопрос задан
  • 221 просмотр
Решения вопроса 1
RiseOfDeath
@RiseOfDeath
Диванный эксперт.
В Linux есть такие похожие вещи как именованный канал (named pipe) и не именованный канал (pipe). (подробнее гуглите типы файлов в Linux) Честно говоря я не помню это разные сущности или нет, в данном случае для простоты будем считать что нет.

Конкретно это сообщение значит, что ваше приложение пытается читать/писать из/в pipe, которого нет.

Боже мой, как же так получилось?
Вероятно rsync использует именованные или не именованные каналы для своей работы. (например для передачи чего-то между запущенными им приложениями или его дочерними потоками.) В момент когда вы жмете Ctrl-C система начинает завершать процесс и освобождать его ресурсы (а так же убивать то, что он запустил). Вероятно один из дочерних процессов, работающих с пайпом, попытались что-то с ним сделать в том время, когда они были еще живы, а процесс-владелец пайпа уже нет (и, следовательно, пайп был освобожден при освобождении ресурсов процесса-владельца).

Что же теперь с нами будет?
Что успело записаться на диск - то успело. Что не успело записаться на диск - то не успело. Больше ничего не случится.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
martin74ua
@martin74ua Куратор тега Linux
Linux administrator
ctrl-c - аварийное завершение. Что вас беспокоит то?
Ответ написан
@vlarkanov
Это - норма (с).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы