Как вы можете изменить имя процесса 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.

  • Arch Linux / Virtualenv: Python 3.5 не удался после обновления системы
  • использование cron для запуска скрипта
  • Общая библиотека libgcrypt, найденная в системном python, но не в среде Anaconda
  • Создание Virtualenv ничего не делает
  • Установите PIL / Pillow через pip в тестировании Debian (Jessie)
  • Установите постоянную переменную среды для всех пользователей
  • как найти имя SMTP-сервера по умолчанию?
  • Каковы могут быть причины, по которым сценарии оболочки убивают себя?
  • 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 .

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