Изменить расположение `~/.python _истории`

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

Каждая система будет вести себя по-разному в зависимости от настройки журнала, настройки ядра и от того, использует ли она systemd или нет (, но dmesg обычно является основным местом отладки/журнала)

В вашей конкретной ситуации, если вы знаете, какой процесс генерирует segfault, вы используете straceили gdb appnameдля отладки проблемного процесса.

https://wiki.archlinux.org/index.php/Step-by-step_debugging_guideв этом руководстве содержится более подробная информация об отладке segfault

4
25.01.2021, 18:37
2 ответа

Меня тоже раздражало большое количество файлов в моем домашнем каталоге. Это то, что я сделал.

  • Создать каталог ~/+Files.
  • Переместите все мои (не раздражающие файлы конфигурации )в этот новый каталог.
  • Настройте интерактивную оболочку и дельфин для запуска в этом новом каталоге.
  • Создать каталог для файлов конфигурации~/+Files/config
  • Переместите файлы конфигурации в этот новый каталог и sym -свяжитесь с ними.

Теперь домашняя директория содержит только ссылки sym -и директорию +Files. Затем с -до -раз я проверяю свой домашний каталог на наличие хлама. И решить, что с ним делать :перейти в конфиг, удалить, …

-1
18.03.2021, 22:34

Как и вы & ctrl -alt -delor, я искал мифический чистый домашний каталог. Вызов readline.write_history_fileзарегистрирован для запуска при выходе вsite.py(в моей арочной системе по адресу/usr/lib/python3.9/site.py):

if readline.get_current_history_length() == 0:
    # If no history was loaded, default to.python_history.
    # The guard is necessary to avoid doubling history size at
    # each interpreter exit when readline was already configured
    # through a PYTHONSTARTUP hook, see:
    # http://bugs.python.org/issue5845#msg198636
    history = os.path.join(os.path.expanduser('~'),
                           '.python_history')
    try:
        readline.read_history_file(history)
    except OSError:
        pass

    def write_history():
        try:
            readline.write_history_file(history)
        except OSError:
            # bpo-19891, bpo-41193: Home directory does not exist
            # or is not writable, or the filesystem is read-only.
            pass

    atexit.register(write_history)

Вы можете продублировать это в своем PYTHONSTARUP, но с произвольным расположением для истории Python. Вот мой (, но если хотите, я уверен, что вы можете использовать подстановку среды, чтобы использовать соответствующий каталог XDG.:

import os
import atexit
import readline

history = os.path.join(os.path.expanduser('~'), '.cache/python_history')
try:
    readline.read_history_file(history)
except OSError:
    pass

def write_history():
    try:
        readline.write_history_file(history)
    except OSError:
        pass

atexit.register(write_history)

Вы могли бы перезаписать файловую функцию записи _истории _, но это очень сложно (вам нужно, чтобы она игнорировала аргумент, заданный вместо вашего пользовательского ), поэтому я думаю, что это лучшее решение. Если это не сработает, попробуйте создать фиктивную запись в пользовательском файле истории Python, чтобы длина истории была больше 0.

1
01.11.2021, 06:45

Теги

Похожие вопросы