Вопрос или проблема
Я знаю, что поведение команды top можно изменять интерактивно, и оно может быть сохранено в виде конфигурационного файла toprc, который будет использоваться автоматически. Есть ли способ написать и передать файл конфигурации (сохраняемый в другом месте) команде top в виде командной строки или каким-либо другим способом.
В моем случае я должен использовать файл конфигурации, сохраненный в директориях моего проекта, и он не должен влиять на нормальное поведение команды top.
Как я упоминал в моем другом ответе на ваш вопрос, это невозможно с текущей версией top.
После изучения исходного кода top я не нашел таких конфигураций или параметров. Но был найден обходной способ. Вы можете установить XDG_CONFIG_HOME
на директорию вашего проекта, и XDG_CONFIG_HOME
должен начинаться с “/”, т.е. это должен быть абсолютный путь.
Файл toprc
будет прочитан или сохранен в $XDG_CONFIG_HOME/procps
. Например, вы можете установить XDG_CONFIG_HOME
на PWD
env XDG_CONFIG_HOME="$PWD" top
После некоторых изменений вы можете сохранить с помощью W
, команда top
выдаст вам:
Сохранена конфигурация в '/tmp/blah_test/tmp.1729493680_qkB/procps/toprc'
Выйдите и перезапустите с той же командой, и вы увидите, что конфигурация вступает в силу.
Исходный код: procps-ng/procps@gitlab
Ответ или решение
Чтобы вручную задать файл конфигурации для команды top
, важно понимать, что стандартный способ использования этой команды предполагает применение глобального файла конфигурации, называемого toprc
. Однако в вашей ситуации, когда вы хотите использовать конфигурационный файл, находящийся в вашей проектной директории, без изменения стандартного поведения top
, существует обходное решение.
Решение через переменную окружения
Команда top
считывает настройки из файла toprc
, который может находиться в определенной директории. Для изменения пути к этому файлу можно воспользоваться переменной окружения XDG_CONFIG_HOME
. Вот пошаговая инструкция:
-
Создайте свою конфигурацию: Создайте файл с любым названием, содержащим ваши настройки для
top
. Например, мы можем назвать егоmy_toprc
. -
Настройте рабочую директорию: Убедитесь, что у вас есть проектная директория, в которой хранится созданный файл.
-
Запустите
top
с новой конфигурацией:
Используйте следующую команду для запускаtop
с заданной конфигурацией:env XDG_CONFIG_HOME="$PWD" top
Здесь
$PWD
– это переменная, указывающая на текущую рабочую директорию, где вы находитесь. -
Сохраните изменения: В процессе работы с интерактивным интерфейсом
top
вы можете настроить отображение по своему усмотрению. После внесения всех изменений нажмитеW
для сохранения текущих настроек:Wrote configuration to '/tmp/blah_test/tmp.1729493680_qkB/procps/toprc'
-
Перезапуск
top
: Закройтеtop
и заново запустите команду с помощью той же команды, чтобы увидеть изменения в конфигурации.
Таким образом, top
теперь будет читать файл toprc
, расположенный в $XDG_CONFIG_HOME/procps
, который соответствует вашему проектному каталогу. Это решение позволяет изолировать конфигурации только для проекта, не влияя на другие экземпляры команды top
в системе.
Итог
Используя описанный метод с XDG_CONFIG_HOME
, вы можете легко управлять параметрами отображения top
для различных проектов или задач, не затрагивая глобальные настройки. Это дает возможность гибко настраивать ваши рабочие среды в зависимости от потребностей конкретного проекта.
Это решение поможет вам достичь желаемого результата и эффективно использовать команду top
под свои нужды.