Изменение имени процесса при запуске в виде пакетного файла
Я работаю над системой мониторинга под названием "Nagios", которая отслеживает службы для серверов UNIX и WINDOWS. Проблема в том, что службы WINDOWS, запускаемые пакетными файлами, называются в диспетчере задач как " cmd.exe", поэтому система не может различать эти службы при мониторинге.
Как я могу изменить имя процесса в диспетчере задач при его запуске, чтобы каждый из них имел уникальное имя, а не " cmd.exe"?
заранее спасибо.
4 ответов
вы можете запустить пакетный файл как службу windows, чтобы сделать имя процесса. Вы можете установить, что произойдет на старте и на остановке. Вы можете убить службу, используя ее PID.
C# Учебник для создания пакетного файла в качестве службы windows.
вы не можете изменить имя процесса. Если вам нужно различать процессы, я бы предложил вам использовать их идентификатор процесса, а не их имя.
вы можете сделать это со следующим пакетом
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
...