linux 自启 程序 跑飞,什么是看门狗.doc

PROCESS_INFORMA TION procStruct;

memset(&StartInfo,0,sizeof(STARTUPINFO));

StartInfo.cb = sizeof(STARTUPINFO);

if (!::CreateProcess(

(LPCTSTR) strPath,

NULL,

NULL,

NULL,

FALSE,

NORMAL_PRIORITY_CLASS,

NULL,

NULL,

&StartInfo,

&procStruct))

return false;

return true;

}

需要提醒的是,TerminateProcess是在万不得已的情况下使用的,它不会进入进程使用的DLL 的入口点通知“脱离”(Detaching)状态。有时候,这样做是很危险的(DLL内部的全局数据可能受影响较大)。

6. 如何让Win2k/NT自动登录

修改注册表。在HKEY_LOCAL_MACHINE目录下的Software\Microsoft\Windows NT\ CurrentV ersion\WinLogon下的AutoAdminLogon(字符串型)设置成1,并在DefaultUserName 设置默认登录用户,DefaultPassword设置默认用户的密码。

7. 如何让Win2k/NT登录成功后直接执行你的程序(而不是默认的文件浏览器)

修改注册表。在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentV ersion\Winlogon\Shell的值从原先的explorer.exe修改为自己程序的绝对路径。

三.功能演示(Win2k/NT下)

友情提醒:开始演示之前,请先将你目前的工作保存。运行“看门狗”WatchDog;同时使用Ctrl+Alt+Del打开“Windows任务管理器”。稍候片刻,可以看到目标程序HungDemo会被启动(这个程序模拟了“没有响应”)。然后,WatchDog发现这个程序“没有响应”,则把它杀掉,然后重新启动一个新的HungDemo进程。如此的处理重复六次以后,系统会自动重启。

各位大虾:

我最近移植一个DOS的程序到LINUX上!

今天我移植到看门狗程序部分(watchdog),在LINUX下看门狗编程很简单,就是程序先向看门狗控制器地址写1(一般地址为0x0443),就是outportb(1,0x0443),这样就打开了看门狗记时器!

程序运行中要不断的向看门狗写1,否则看门狗就认为程序死机了,就重新启动系统!这就是我理解的看门狗工作原理!

我按这个想法,在LINUX上编程! 首先我查看cat /proc/ioport ,发现0x443已经有了看门钩定义! 从而系统已经包含了看门狗驱动程序了!所以我就把看门狗当作一个设备(/dev 中有一个