Я увидел ту же ошибку, когда пытался подключиться по ssh к Synology , так как мне нужно было использовать Borg Backup. Проблема заключалась в том, что я пытался подключиться к пользователю, который не был администратором, хотя все разрешения были правильными. Когда я попытался подключиться по ssh к пользователю, который был суперадмином, соединение не было прервано. Я не знаю, поможет ли это, но это мой опыт с этой ошибкой.
Исходный код bash
(, доступный в Debian с apt-get source bash
), записывает свой файл истории, используя функцию history_do_write
в файле bash-5.0/lib/readline/histfile.c
. Он создает временный файл, записывает в него строки истории, а затем использует его для замены фактического файла истории
tempname = (overwrite && exists && S_ISREG (finfo.st_mode)) ? history_tempfile (histname) : 0;
output = tempname ? tempname : histname;
...
if (rv == 0 && histname && tempname)
rv = histfile_restore (tempname, histname);
Существует ряд мест, где запись может завершиться ошибкой, и в этих случаях связь с временным файлом (удаляется ), а исходный файл остается в покое.
Однако в мимолетном комментарии вы упомянули, что запустили форкбомбу. Это вполне могло быть основной причиной появления этих временных файлов. Вполне возможно, что из-за чрезмерной нагрузки на память и процесс, вызванной неконтролируемой форк-бомбой, bash
не смог получить достаточно временной памяти даже для завершения этого процесса восстановления и просто завис во время попытки обновления. (Обратите внимание, что это не неопровержимый факт, а всего лишь гипотеза.)
Если вы находитесь в среде, где пользователи могут запускать форкбомбы, стоит включить управление ресурсами .
Точно сказать нельзя, но скорее всего что-то изменило переменную окружения HISTFILE
и потом вызвало bash (или, может быть, какой-то другой файл на основе readline
-, но тогда вопрос, почему $HISTFILE
будет содержать.bash-history
).
Это похоже на то, что вы делаете в наборе модульных тестов ().
Я копался в исходном коде bash уже пару минут, и не похоже, чтобы он хоть где-то отличался от стандартного $HOME/.bash_history
, если только он не указан через HISTFILE
.