请问有什么方法能杀死自己写的服务(无法响应客户端)!!?急!!

书生 2005-03-16 01:25:42
如题:自己写的一个服务。客户端大概有20个左右。现在的情况是2-3天会突然出现无法响应客户端的请求。因为任务比较急来不及细查原因。想先用另一个服务强制杀死它,然后再叫它起来。
请问:CB中有什么方法么?或者有什么特殊指令能实现杀死[[[无响应]]]的服务么?有示范代码或者知道指令的请贴一下。谢谢!

比较急,我提问也比较少。请大家多多帮忙,必有重谢! 认识的朋友更要帮忙了,帮不上顶一下也领情了啊。。。 :((((
...全文
213 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
icwin 2005-03-20
  • 打赏
  • 举报
回复
up
空中猎手 2005-03-16
  • 打赏
  • 举报
回复
关注
书生 2005-03-16
  • 打赏
  • 举报
回复
谢谢大家的帮忙:
猛禽的ntsd方法现在做了测试,正常进程和无响应的普通进程都成功杀死了。对于无响应的服务在等待服务死亡中。。。呵呵。

GM的方法和h的方法我再试下。不过据说destroywindow在资源释放上面有漏洞,虽然能够杀掉进程,但是会导致再次启动有问题。我没做过测试。

有好方法的朋友请继续出招。
3996906 2005-03-16
  • 打赏
  • 举报
回复
没好说的了,等完整解答吧~~~~~~~~~~~~~~估计是楼主给啊
h98458 2005-03-16
  • 打赏
  • 举报
回复
捧场!
可以试试对该窗口发出WM_DESTROY(销毁)信息

BOOL DestroyWindow(

HWND hWnd // handle to window to destroy
);

你试试这样看能不能把进程给K掉:
HANDLE hTerminate;
hTerminate=OpenProcess(PROCESS_TERMINATE,TRUE,hProcessID);
if(!hTerminate) return;
TerminateProcess(hTerminate,0);
WaitForSingleObject(hTerminate,0x2727);
CloseHandle(hTerminate);


//hProcessID进程的ID,杀进程需要打开该进程

jiangchun_xn 2005-03-16
  • 打赏
  • 举报
回复
在代码力提高自身权限,再杀。一般都能杀掉。
BOOL EnableDebugPrivilege()

{
HANDLE hToken;
BOOL fOk=FALSE;
if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken))
{
TOKEN_PRIVILEGES tp;
tp.PrivilegeCount=1;
if(!LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&tp.Privileges[0].Luid))
printf("Can't lookup privilege value.\n");
tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
if(!AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(tp),NULL,NULL))
printf("Can't adjust privilege value.\n");
fOk=(GetLastError()==ERROR_SUCCESS);
CloseHandle(hToken);
}
return fOk;
}
猛禽 2005-03-16
  • 打赏
  • 举报
回复
你在任务管理器里能杀掉那个进程吗?如果能杀就应该可以用TerminateProcess。
要不行就用NTSD试试,要还不行……偶也么办法了。
GaoLun 2005-03-16
  • 打赏
  • 举报
回复
如果实在不行的话,还不如叫电脑每隔一段时间重启一次


不过这样不厚道了,而且重启一次用的时间太久了,
我不懂电脑 2005-03-16
  • 打赏
  • 举报
回复
可以在组件服务-又击鼠标-属性-共用与回收中设置过期超时的值,让com+服务管理器自动管理。
lihao1111111111 2005-03-16
  • 打赏
  • 举报
回复
顶!
佛火 2005-03-16
  • 打赏
  • 举报
回复
关注,
书生 2005-03-16
  • 打赏
  • 举报
回复
莫非咱们都只睡了不到6个小时??

杀Process也试了。当服务无法响应的时候杀不成功。你有相应的代码贴一下么?
我试一下。谢谢。
flc 2005-03-16
  • 打赏
  • 举报
回复
学习
蒋晟 2005-03-16
  • 打赏
  • 举报
回复
是杀进程不是停服务……
书生 2005-03-16
  • 打赏
  • 举报
回复
jiangsheng(蒋晟.MSMVP2004Jan) :是这么想的啊,可是不知道具体的代码或者指令。net stop等或者是temi...等函数都对于无响应的服务杀不了。你有时间可以试一下。 :((
书生 2005-03-16
  • 打赏
  • 举报
回复
自己顶一下。
qzxyd 2005-03-16
  • 打赏
  • 举报
回复
学习
kinglh 2005-03-16
  • 打赏
  • 举报
回复
学习
蒋晟 2005-03-16
  • 打赏
  • 举报
回复
CSDN的服务器也经常过载,是用一个监视器监视异常情况之后杀进程的
你可以在客户端持续一段时间没有收到响应之后杀掉服务所在进程

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧