Как вы можете изменить имя процесса Wing IDE с питона на что-то более описательное

В моем списке процессов под Ubuntu (с использованием top / System Monitor ) одним из самых больших богов памяти (200 + Мб) был python . Я несколько раз искал одну из моих программ, пока не понял, что это была моя Python IDE ( Wing ), которая сама написана на Python.

Я думал, что могу изменить название программы, вставив setproctitle из пакета setproctitle , но версия python, используемая Wing, отличается от моей. setproctitle необходимо скомпилировать, а питон, который использует это крыло, не является полной установкой (я спросил Wing Support, но они вряд ли изменят это / включить setproctitle).

setproctitle может изменить только имя запущенного процесса, поэтому я не смог создать скрипт, запускающий Wing, а затем изменить имя процесса.

После этого я попытался написать в / proc / PIDNUM / comm, но хотя этот файл «rw», мне не разрешено писать там.

Наконец, я нашел не столь портативное решение для этого конкретного случая. Но я хотел бы знать, существует ли стандартный способ изменения имени процесса другого (возможно, дочернего) процесса с системным вызовом Linux.

3 Solutions collect form web for “Как вы можете изменить имя процесса Wing IDE с питона на что-то более описательное”

Процесс может записывать только в свой собственный /proc/pid/comm . Так как кажется, что вы можете изменить код IDE, вы можете просто написать его /proc/self/comm .

Другой вариант – изменить имя исполняемого файла Python, а затем изменить все #! но это может быть PITA.

Другие – более болезненные варианты – писать код C и использовать LD_PRELOAD или ptrace .

Как уже указывал derobert, возможно, самый простой способ получить другое имя в таблице процессов – переименовать «частный» исполняемый файл python из python в wing_ide .

Команда запуска, /usr/bin/wing4.1 , на самом деле является минимальным сценарием оболочки, вызывающим второй скрипт /usr/lib/wingide4.1/run-wing.sh я исправил следующим образом:

 @@ -66,7 +66,9 @@ # Location of Python interpreter to use, if not already set if [ "${WINGPYTHON}" = "" ]; then - if [ -x "${WINGHOME}/bin/PyCore/python" ]; then + if [ -x "${WINGHOME}/bin/PyCore/wing_ide" ]; then + WINGPYTHON="${WINGHOME}/bin/PyCore/wing_ide" + elif [ -x "${WINGHOME}/bin/PyCore/python" ]; then WINGPYTHON="${WINGHOME}/bin/PyCore/python" elif [ "${WINGIDE_USE_QT4}" = "1" ]; then WINGPYTHON="${WINGHOME}/bin/runtime-python2.7/bin/python2.7" 

в дополнение к этому я скопировал ${WINGHOME}/bin/PyCore/python в ${WINGHOME}/bin/PyCore/wing_ide .

Для Wing 5.0 аналогичная вещь может быть выполнена, но питон по умолчанию, принятый после установки,

  WINGPYTHON="${WINGHOME}/bin/runtime-python2.7/bin/python2.7" 

поэтому это нужно скопировать в wing_ide в том же каталоге и использовать

Вы можете увидеть всю команду, используемую для вызова процесса, используя top , но по умолчанию он не показывает его. Переключите это в нижнем регистре c . Это должно позволить вам отличить одно приложение python от другого.

Разница между вызовом командной строки и именем процесса появляется в proc также, как cmdline и comm .

  • Не удается открыть Gajim
  • python3_5 в PYTHON_TARGETS не работает в Gentoo?
  • Созданные новые файлы и папки автоматически наследуют те же разрешения, что и родительская папка
  • Cron Job для продолжения работы Daemon?
  • Можно ли как-то сказать, переносится ли ноутбук в сценарий bash или python?
  • Как контролировать блокировку / разблокировку экрана в Ubuntu 14.04
  • Как выглядит параллельная программа Python с верхней командой?
  • Systemd: как запустить / остановить скрипт Python, который должен работать в фоновом режиме, внутри Virtualenv
  • Очистка / изменение предыдущих уведомлений libnotify?
  • Ошибка трассировки python3
  • Использование jq для извлечения значений и форматирования в CSV
  • Как проверить функцию UPSTART для ubuntu, чтобы увидеть, как мой скрипт автоматически перезапускается, если он убит?
  • Linux и Unix - лучшая ОС в мире.