社区
进程/线程/DLL
帖子详情
服务程序崩溃后自动重启可行吗?
jamseyang
2010-03-16 03:01:23
我有一个服务程序,会出现偶然性的崩溃,并且无法重现,找了几天还是没有找出问题所在,我使用SetUnhandledExceptionFilter还捕获异常,做了个Win32控制台下Demo,程序崩溃后可以用WinExc可以重新启动。我想问的是服务程序崩溃后使用system("net start ServiceName")可以启动服务吗?这样可靠吗?
...全文
847
18
打赏
收藏
服务程序崩溃后自动重启可行吗?
我有一个服务程序,会出现偶然性的崩溃,并且无法重现,找了几天还是没有找出问题所在,我使用SetUnhandledExceptionFilter还捕获异常,做了个Win32控制台下Demo,程序崩溃后可以用WinExc可以重新启动。我想问的是服务程序崩溃后使用system("net start ServiceName")可以启动服务吗?这样可靠吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bingshanzhu
2011-09-16
打赏
举报
回复
同志们,自动重启程序是很有必要的,你的程序再好,如果出现了硬件运行错误,也有可能崩溃的(虽然几率很小很小,但是也有可能发生的。)
jamseyang
2010-03-18
打赏
举报
回复
[Quote=引用 17 楼 zhupf 的回复:]
其实一个程序退出了...理论上其资源也就全部释放了..假如有被其他进程同时使用,那就另当别论.被其他进程暂缓释放也另当别论.
那么,随便哪种方式重启结果都是一样的..
但建议要把问题找出来...兄弟啊...
想方设法找啊...记日志..崩溃的时候不让它退出,记录崩溃代码啥的. minidump那个东西...等等,还有华生医生等等.
[/Quote]
谢谢了,说的很中肯。
我想问下,dmp可以定位到出错的行,但是如何获取上下文变量的当前值呢?我的意思是用VC2005打开dmp文件指向出错的行,我想知道这之前各变量的值,怎么获取呀.
不说害怕
2010-03-17
打赏
举报
回复
其实一个程序退出了...理论上其资源也就全部释放了..假如有被其他进程同时使用,那就另当别论.被其他进程暂缓释放也另当别论.
那么,随便哪种方式重启结果都是一样的..
但建议要把问题找出来...兄弟啊...
想方设法找啊...记日志..崩溃的时候不让它退出,记录崩溃代码啥的. minidump那个东西...等等,还有华生医生等等.
liuxiuk
2010-03-17
打赏
举报
回复
2楼的是个馊主意, hehe
jamseyang
2010-03-17
打赏
举报
回复
[Quote=引用 13 楼 wizardk 的回复:]
引用 12 楼 wozhaolala 的回复:
引用 7 楼 wizardk 的回复:
程序崩溃不要用重启的方式糊弄
重启不是糊弄,如果软件的工作还得继续
发布前要把好关,如果不查明原因而只是重启解决的话,说不定会造成未知的故障。就像WATCHDOG一样,这是在万不得已的情况下硬复位,但哪个开发者也不会依靠他去解决系统崩溃、软件死锁的问题。
[/Quote]
说的很对!应该先最大努力去查明真相,在万不得已情况下才考虑自动重启。
WizardK
2010-03-17
打赏
举报
回复
[Quote=引用 12 楼 wozhaolala 的回复:]
引用 7 楼 wizardk 的回复:
程序崩溃不要用重启的方式糊弄
重启不是糊弄,如果软件的工作还得继续
[/Quote]
发布前要把好关,如果不查明原因而只是重启解决的话,说不定会造成未知的故障。就像WATCHDOG一样,这是在万不得已的情况下硬复位,但哪个开发者也不会依靠他去解决系统崩溃、软件死锁的问题。
悟迟
2010-03-17
打赏
举报
回复
[Quote=引用 7 楼 wizardk 的回复:]
程序崩溃不要用重启的方式糊弄
[/Quote]重启不是糊弄,如果软件的工作还得继续
rendao0563
2010-03-17
打赏
举报
回复
[Quote=引用 7 楼 wizardk 的回复:]
程序崩溃不要用重启的方式糊弄
[/Quote]
TRY掉. 然后写个log.
zero_226
2010-03-17
打赏
举报
回复
崇拜一个,说的太好了[Quote=引用 7 楼 wizardk 的回复:]
程序崩溃不要用重启的方式糊弄
[/Quote]
jamseyang
2010-03-16
打赏
举报
回复
[Quote=引用 7 楼 wizardk 的回复:]
程序崩溃不要用重启的方式糊弄
[/Quote]
惭愧呀,我要深刻检讨!
jamseyang
2010-03-16
打赏
举报
回复
[Quote=引用 6 楼 yekoufeng 的回复:]
三种方法都可以,对于不重现的bug,要详细写日志
[/Quote]
请问详细日志应该怎么写呀,我程序有点复杂.
WizardK
2010-03-16
打赏
举报
回复
程序崩溃不要用重启的方式糊弄
yekoufeng
2010-03-16
打赏
举报
回复
三种方法都可以,对于不重现的bug,要详细写日志
jingzhongrong
2010-03-16
打赏
举报
回复
要用代码实现?
ChangeServiceConfig2(..., SERVICE_CONFIG_FAILURE_ACTIONS ...)
SC_ACTION_RESTART
jamseyang
2010-03-16
打赏
举报
回复
[Quote=引用 1 楼 wangk 的回复:]
直接在服务属性里设置失败重启即可。
[/Quote]
谢谢倒之的回答,可以给几段代码吗?
mcaok
2010-03-16
打赏
举报
回复
可以。
webipstin
2010-03-16
打赏
举报
回复
可以使用进程守护,另一个进程定时查找服务进程是否在启动状态,不在就winexec或createprocess启动服务进程。
wangk
2010-03-16
打赏
举报
回复
直接在服务属性里设置失败重启即可。
VC++调试快速入门与提高
*程序运行时间长了,内存居高不下 *在自己的机器上运行正常,在测试的机器上就出问题 *调试版运行正常,但是发布出去就运行不正常 *偶尔还需要修复Linux程序的bug,但是却没有Linux环境 *也偶尔遇到程序
崩溃
了,却...
Java程序
崩溃
自启动_windows 设置 java 程序开机启动 +
崩溃
重启
接下来介绍一种
可行
的解决方案:设置 java 程序开机启动 +
崩溃
自动
重启
(当然能避免程序
崩溃
最好,这是根本解决方法,本文的目的是给你的程序设立最后一道保障)。实现思路jar 包开机运行:利用 Windows 系统自带的...
windows 设置 java 程序开机启动 +
崩溃
重启
接下来介绍一种
可行
的解决方案:设置 java 程序开机启动 +
崩溃
自动
重启
(当然能避免程序
崩溃
最好,这是根本解决方法,本文的目的是给你的程序设立最后一道保障)。 实现思路 jar 包开机运行:利用 Windows 系...
linux进程退出后
重启
,Linux 下实现进程退出后
自动
重启
Linux 下实现进程退出后
自动
重启
一般方案有21.采用脚本,网上很多,但对一些嵌入式系统因资源限制,大部分命令裁剪了,故不
可行
2.采用fork,父进程等待子进程退出一下采用fork 方法实现,对于
重启
多个进程,可采用...
你的程序会
崩溃
吗?
程序
崩溃
是最让人头疼的事情。当用户使用时,如果是第一次运行就
崩溃
,那此程序一定没戏了。即使是偶尔
崩溃
也会让用户心里很不爽。其实这不能全怪我们程序员。有些问题,我们也无法预知啊。但,作为一名优秀的程序员...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章