Предоставление процесса собственного имени в GNU/Linux?

Небольшое изменение в ответе vog для включения обработчика по умолчанию для других методов как ОПЦИИ ПОМЕСТИТЕ, и т.д.

    upstream webdav_default {
            server example.com;
    }
    upstream webdav_upload {
            server example.com:8081;
    }
    upstream webdav_download {
            server example.com:8082;
    }
    server {
            map upstream_location $request_method {
                    GET     webdav_download;
                    HEAD    webdav_download;
                    PUT     webdav_upload;
                    LOCK    webdav_upload;
                    default webdav_default;
            }
            location / {
                    proxy_pass https://$upstream_location;
            }
    }
10
задан 10 June 2009 в 15:16
4 ответа

Создание, которое символьная ссылка должна добиться цели, однако, было бы более полезно, если бы мы знали болезнь а не признак. Что точно Вы пытаетесь сделать? Поскольку может быть лучший путь

gnuix@defiant)-(08:11pm-:-06/10)--
(~)./0012
my weird program name
  PID TTY          TIME CMD
 7805 pts/1    00:00:00 zsh
14020 pts/1    00:00:00 0012
14021 pts/1    00:00:00 ps
(gnuix@defiant)-(08:11pm-:-06/10)--
(~)ln -s 0012 weird
(gnuix@defiant)-(08:12pm-:-06/10)--
(~)./weird 
my weird program name
  PID TTY          TIME CMD
 7805 pts/1    00:00:00 zsh
14046 pts/1    00:00:00 weird
14047 pts/1    00:00:00 ps
(gnuix@defiant)-(08:12pm-:-06/10)--
(~)

Обновление: На основе дополнительной информации Вы могли (я быть уверенным, что существует более легкий путь, но не прибытие ко мне в данный момент), имеют Ваши серверы, выписывают их PID в файл после запуска, затем Вы могли уничтожить-9 | кошка/var/run/devserver.pid, но затем это будет вопросом о программировании :)

Обновите снова: Вы могли также сделать некоторый обман оболочки для получения PID серверов при запуске их первое, что пришло на ум Вы могли создать функцию оболочки, вызванную startmyserver, например, который перенесет команду, которую Вы используете для запуска серверов, но также и $ получения! в файл, основанный на имени запуска - затем, мы говорим о сценариях оболочки, которые являются 'в пределах поля' ServerFault.:-)

7
ответ дан 2 December 2019 в 22:04

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

Если Вы действительно хотите изменить имя, лучший способ состоит в том, чтобы использовать простую обертку, которая устанавливает argv и затем должностных лиц процесс, который Вы хотите выполнить. Не имейте времени, чтобы дать Вам некоторый пример кода теперь, но кричать громко приблизительно за 10 часов, и я буду видеть то, что я могу сделать.

4
ответ дан 2 December 2019 в 22:04
  • 1
    точно моя точка. Вам нужен код для того (кроме переименования / (sym) соединение двоичного файла, который мог быть проблематичным, если это проверяет на argv [0]), –  serverhorror 10 June 2009 в 14:10

Это действительно не принадлежит на ПОЭТОМУ, потому что это универсально, не конкретный вопрос языка.

Короткий ответ не легко. Таким образом, это не может быть сделано из функциональности Вашей оболочки или procfs/sysfs. Необходимо будет использовать внешнюю утилиту для достижения его.

Существует длинное описание на как и почему здесь. Остерегайтесь это - симпатичный C-centric.

Обновление:

Они - Python, который изменяет игру. Теперь не будучи также Так, вероятно, было бы легче изменить их для использования этого модуля или аналогичного подхода.

3
ответ дан 2 December 2019 в 22:04
  • 1
    touche.. Я знал, что был более легкий путь :) –  GNUix 10 June 2009 в 14:58
  • 2
    Код C является значительно более подробным, чем это должно быть должно на сумму вывода, это делает. Должно быть возможно уменьшить его вниз, но it' s выполнение в значительной степени того же, как я предполагал. Только с некоторым кодом для движения с ним :) Бит it' s пропавшие без вести должностное лицо для выполнения кода :) –  David Pashley 10 June 2009 в 16:16

Посмотрите https://github.com/electrum/procname . Он позволяет вам установить имя процесса для любого процесса, используя переменную среды.

Использование:

Запуск Java с установленными переменными среды LD_PRELOAD и PROCNAME:

LD_PRELOAD = / path / to / libprocname.so PROCNAME = привет java -jar foo.jar

3
ответ дан 2 December 2019 в 22:04

Теги

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