изменить среду работающего процесса

Как можно изменить какую-либо переменную в env уже запущенного процесса, например через /proc/PID/environ? Этот «файл» read-only .

Необходимо изменить или отключить переменную DISPLAY долговременного пакетного задания, не убивая его.

One Solution collect form web for “изменить среду работающего процесса”

Вы не можете сделать это без неприятных хаков – для этого нет API, никоим образом не уведомлять о том, что изменилась его среда (так как это вообще не возможно).
Даже если вам удастся это сделать, нет никакого способа убедиться, что это будет иметь какое-либо влияние – процесс может очень хорошо кэшировать переменную среды, которую вы пытаетесь выталкивать (поскольку ничто не должно меняться ).

Если вы действительно хотите это сделать и готовы подобрать кусочки, если все пойдет не так, вы можете использовать отладчик. См. Например, этот вопрос переполнения стека:
Есть ли способ изменить переменные среды другого процесса?

По существу:

 (gdb) attach process_id (gdb) call putenv ("DISPLAY=your.new:value") (gdb) detach 

Другие возможные функции, которые вы могли бы попытаться вызвать, – setenv или unsetenv .

Пожалуйста, имейте в виду, что это может не сработать или иметь ужасные последствия, если процесс, на который вы нацеливаете, делает «интересные» вещи с помощью блока среды. Сначала проверьте его на некритических процессах, но убедитесь, что эти тестовые процессы максимально близки к тому, который вы пытаетесь вытолкнуть.

  • Возможно ли создать каталог и файл внутри / proc / sys?
  • Что случилось с / proc / sys / fs / relatime_interval?
  • Как proc обновляется об устройствах
  • Значение / proc / sys / kernel / hostname
  • Получить нагрузку на процессор ядра в сценарии оболочки
  • Какие возможности Linux мне нужны для записи в / proc / sys / vm / drop_caches?
  • Значения странного значения cpu, сообщенные pidstat
  • / proc / net / wireless не отображает значения, если они выполняются как root
  • Каково правильное значение для максимального количества CPU для sched_setaffinity?
  • Программно получить подробное использование процессоров, например top / htop
  • Как включить файловые системы в / proc / filesystems?
  • Interesting Posts

    Вручную настроить Link-Local IPV6 независимо от интернет-провайдера

    Kali linux с двойной загрузкой с выигрышем 8 64 бит не работает

    Детерминированный метод, чтобы выяснить, находится ли какой-нибудь другой процесс в тюрьме chroot и где?

    как выполнить встроенную оболочку, если найти найденные определенные файлы

    Как установить горячую точку, которая проксимизирует все соединения с tor?

    Мультимедийные клавиши (Fn + ) больше не работают после обновления

    Обновление zsh на красной шляпе 5 x86_64

    Сложность создания регулярного выражения для поиска по меньшей мере двух вхождений символа в файл

    Переместить папки, не существующие в целевой каталог

    Почему загрузочный сектор на Linux-разделе пуст?

    postfix отправитель mailaddress переписать на основе получателя mailaddress

    Обнуление пакетов через маршрутизатор

    Существует ли общее правило для отслеживания ошибки?

    Удаляется ли каталог, когда число жестких ссылок становится 0?

    Сервер WebDAV с правами доступа к PAM и системному файлу?

    Linux и Unix - лучшая ОС в мире.