I'm working on a monitoring system called "Nagios" which monitors services for UNIX and WINDOWS servers. Problem is WINDOWS services that are launched by batch files are named in task manager as "cmd.exe", so system can't distinguish between these services when monitoring.
How can I change a process name on task manager when launching it so each one has a unique name rather than "cmd.exe"?
Thank you in advance.
You can run batch file as windows service to make a process name. You can set what to happen on start and on stop. You can kill the service using its PID.
C# Tutorial to create batch file as windows service.
You can't change the name of the process. If you need to distinguish between the processes then I would suggest you use their process ID rather than their name.
You can do this with following batch
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
HOW TO USE
Rename-cmd.bat NAME_OF_CMD_IN_TSKMGR BATCH_YOU_WANT_TO_START
DOS has a wonderful command called title - would seem to fit
@echo off
title MyBatchTitle
...
来源:https://stackoverflow.com/questions/13473372/change-process-name-when-launched-as-batch-file