我正在开发一个名为“Nagios”的监控系统,它监控UNIX和WINDOWS服务器的服务。问题是批处理文件启动的WINDOWS服务在任务管理器中命名为“cmd.exe”,因此系统在监控时无法区分这些服务。
如何在启动任务管理器时更改任务管理器上的进程名称,以便每个进程名称都具有唯一的名称而不是“cmd.exe”?
提前谢谢。
答案 0 :(得分:2)
您可以将批处理文件作为Windows服务运行以创建进程名称。您可以设置开始和停止时要发生的事情。您可以使用其PID终止服务。
C# Tutorial将批处理文件创建为Windows服务。
答案 1 :(得分:0)
您无法更改流程的名称。如果您需要区分这些流程,那么我建议您使用他们的流程ID而不是他们的名称。
答案 2 :(得分:0)
您可以在以下批次中执行此操作
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
答案 3 :(得分:0)
要在启动时更改任务管理器上的进程名称,使每个进程名称都具有唯一性,而不是“cmd.exe”,您可以使用 cmd.exe 的副本调用批处理文件。
找到一个自动执行此过程的简单脚本答案 4 :(得分:-1)
@echo off
title MyBatchTitle
...