Изменение имени процесса при запуске в виде пакетного файла

Я работаю над системой мониторинга под названием "Nagios", которая отслеживает службы для серверов UNIX и WINDOWS. Проблема в том, что службы WINDOWS, запускаемые пакетными файлами, называются в диспетчере задач как " cmd.exe", поэтому система не может различать эти службы при мониторинге.

Как я могу изменить имя процесса в диспетчере задач при его запуске, чтобы каждый из них имел уникальное имя, а не " cmd.exe"?

заранее спасибо.

4 ответов


вы можете запустить пакетный файл как службу windows, чтобы сделать имя процесса. Вы можете установить, что произойдет на старте и на остановке. Вы можете убить службу, используя ее PID.

C# Учебник для создания пакетного файла в качестве службы windows.


вы не можете изменить имя процесса. Если вам нужно различать процессы, я бы предложил вам использовать их идентификатор процесса, а не их имя.


вы можете сделать это со следующим пакетом

  • переименовать-cmd.летучая мышь
    echo off
    set program=c:\Windows\system32\cmd.exe
    set alias_name=%1
    set alias_path=%~dp0
    set batch_file=%2
    set alias=%alias_path%%alias_name%.exe
    call :find_args %*
    call :make_link %program% %alias%
    %alias% /C %batch_file% %args%
    :find_args
    set args=
    shift
    shift
    :loop
      if [%1] == [] goto :eof
      set args=%args% %1
      shift
      goto :loop
    :make_link
      copy %1 %2
    

    КАК ИСПОЛЬЗОВАТЬ

    переименовать-cmd.bat NAME_OF_CMD_IN_TSKMGR BATCH_YOU_WANT_TO_START


  • DOS имеет замечательную команду под названием заголовок - казалось бы, отвечает

    @echo off
    title MyBatchTitle
    ...