社区
进程/线程/DLL
帖子详情
怎么使系统服务进程无法停止?
CBuilderflying
2004-07-31 01:52:18
怎么使系统服务进程无法终止?就像某些Windows系统进程那样,或者显示“无法完成操作 禁止访问”
还有就是如何编程设置系统服务的之间的依存关系,比如要关闭Server进程必须要同时关闭Computer Browser进程...
...全文
490
13
打赏
收藏
怎么使系统服务进程无法停止?
怎么使系统服务进程无法终止?就像某些Windows系统进程那样,或者显示“无法完成操作 禁止访问” 还有就是如何编程设置系统服务的之间的依存关系,比如要关闭Server进程必须要同时关闭Computer Browser进程...
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhoujiamurong
2004-09-27
打赏
举报
回复
怎么建工程放test1 和test2
zhoujiamurong
2004-09-27
打赏
举报
回复
mark
九重霄
2004-09-10
打赏
举报
回复
gz
toxyboy
2004-08-03
打赏
举报
回复
Mark
bx2000
2004-08-03
打赏
举报
回复
做成驱动模式的就可以了
Kudeet
2004-08-02
打赏
举报
回复
转自老侃第一站:
怎么做一个WinNT下无法终止的进程呢?相信有很多人会说做成服务,这样就不能被任务管理器杀死了。真的吗?不一定,普通的服务也还是能够被任务管理器杀死的,但的确在杀有些服务的时候会提示“为系统关键进程,无法停止”。系统关键进程怎么做?不会了吧,呵呵,我也不会。
我这里讲的方法实际上是不能终止的两个进程。讲到这里相信很多人都明白了,就是两个进程相互监视,一旦发现对方被杀就立刻重启对方。这样,这两个进程就很难被杀死了,至少我认为用任务管理器是不可能杀死它们的。
我的例子中,每个进程建立一个线程专门用于监视,这样主线程还可以做其他的事情。另外,注意那个互斥对象的使用。当然,这个程序可能写的不是很完美。
//test1.cpp
#include <windows.h>
DWORD WINAPI ThreadCheckProc(LPVOID lParam)
{
STARTUPINFO si={sizeof(si)};
PROCESS_INFORMATION pi={0};
HANDLE hMutex;
char *pName=(char *)lParam;
while(true)
{
hMutex=OpenMutex(MUTEX_ALL_ACCESS,FALSE,pName);
if(!hMutex)
{
CreateProcess(pName,
NULL,
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi ); // Pointer to PROCESS_INFORMATION structure.
WaitForSingleObject( pi.hProcess, INFINITE );
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
}
else
{
CloseHandle(hMutex);
}
Sleep(1);
}
}
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
)
{
DWORD ThreadId;
CreateMutex(NULL,TRUE,"test1.exe");
CreateThread(NULL,0,ThreadCheckProc,(LPVOID *)"test2.exe",0,&ThreadId);
while(1)
{
Sleep(1000);
}
return 0;
}
//test2.cpp
#include <windows.h>
DWORD WINAPI ThreadCheckProc(LPVOID lParam)
{
STARTUPINFO si={sizeof(si)};
PROCESS_INFORMATION pi={0};
HANDLE hMutex;
char *pName=(char *)lParam;
while(true)
{
hMutex=OpenMutex(MUTEX_ALL_ACCESS,FALSE,pName);
if(!hMutex)
{
CreateProcess(pName,
NULL,
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi ); // Pointer to PROCESS_INFORMATION structure.
WaitForSingleObject( pi.hProcess, INFINITE );
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
}
else
{
CloseHandle(hMutex);
}
Sleep(1);
}
}
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
)
{
DWORD ThreadId;
CreateMutex(NULL,TRUE,"test2.exe");
CreateThread(NULL,0,ThreadCheckProc,(LPVOID *)"test1.exe",0,&ThreadId);
while(1)
{
Sleep(1000);
}
return 0;
}
NowCan
2004-08-02
打赏
举报
回复
可能是SetServiceStatus函数实现的。
试试看,我没有用过。
huiker
2004-08-01
打赏
举报
回复
up
StarsWu
2004-08-01
打赏
举报
回复
system idle process不是真正的进程,只是用来表示空闲CPU时间的代替进程.
tabris17
2004-08-01
打赏
举报
回复
谁说"没有绝对结束不了的进程"的?
system idle process就是不能结束的
howtotell
2004-07-31
打赏
举报
回复
没有绝对结束不了的进程.只能是windows自带的进程管理器结束不了而已.通过把自己编写的程序提升到SE_PRIVILEGE_ENABLED权限,然后利用TerminateProcess(OpenProcess(PROCESS_TERMINATE ,FALSE,进程号,0);连0号进程都可以结束(结果是蓝屏而已).
tabris17
2004-07-31
打赏
举报
回复
只要编写的服务程序不响应SERVICE_CONTROL_STOP就可以了
huiker
2004-07-31
打赏
举报
回复
关注
linux
系统
中tomcat使用shutdown.sh
无法
停止
服务
器
进程
在linux
系统
中使用tomcat应用
服务
器,会出现使用shutdown.sh脚本
无法
停止
tomcat
进程
的现象。 经过研究发现可以这样解决这个问题: 首先我们需要修改tomcat的./bin/catalina.sh脚本,在脚本里面加入下面的代码 if [ -z "$CATALINA_PID" ]; then CATALINA_PID=$PRGDIR/CATALIN...
Linux 中
停止
Docker
服务
报 warning 导致
无法
彻底
停止
问题如何解决?
在 Linux
系统
中,
停止
Docker
服务
时可能会遇到警告,导致
服务
无法
彻底
停止
。此问题可能由多种原因引起,包括
系统
资源、依赖关系或
服务
管理工具的问题。以下是解决这一问题的详细步骤和策略。
无法
停止
dhcp 位于本地计算机,win7
系统
开启
服务
提示“错误1067
进程
意外终止”如何解决...
win7
系统
运行某些程序的时候,需要打开对应的
服务
才可保持正常运行。但是有用户反应win7在开启“wireless pan dhcp server”
服务
的时候,
系统
提示“windows
无法
启动 wireless pan dhcp server
服务
(位于 本地计算机上)错误1067:
进程
意外终止”,如何解决呢?小编整理发现,只有INTEL型号的无线网卡才会出现这样的错误。看看下面解决方法。具体方...
无法
停止
hadoop集群(stop-all.sh)
执行 ./bin/stop-all.sh 脚本一直提示没有可
停止
的namenode、datanode、secondarynode。可是输入 jps 命令,发现hadoop 已经启动。 [root@xxxxxx src]# bash hadoop-2.6.5/sbin/stop-all.sh This script is Deprecated. Instead use stop-dfs.sh a...
java 守护
进程
linux_使用启动
停止
守护
进程
无法
停止
Linux中的Java
服务
我有一个
进程
,它运行在Ubuntu Linux上的Java守护
进程
。我
无法
使用下面d_stop()中的start stop daemon命令
停止
它。
进程
ID应该在启动过程中写入文件$pidfile,但是那不起作用。这是我的剧本:#! /bin/sh#### Version: @(#)daemon 1.0#set -ePATH=/usr/local/sbin:/usr/local/bin...
进程/线程/DLL
15,465
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章