当前位置:  技术问答>linux和unix

如何实现程序的自动重启

    来源: 互联网  发布时间:2017-01-15

    本文导语:  程序出错后 需要重新从main函数处开始运行  使用goto语句不在同一函数中 不可行   调用main函数占着以前的资源不放  那怎么能让程序发现自己错误后 自己关闭后 让他 自己开始再运行起来 谢谢了 ...

程序出错后 需要重新从main函数处开始运行  使用goto语句不在同一函数中 不可行   调用main函数占着以前的资源不放 
那怎么能让程序发现自己错误后 自己关闭后 让他 自己开始再运行起来 谢谢了

|
你可以建立一个父进程,它负责启动你的进程,并且在发现子进程失败后,重启子进程。

|
或者写一个脚本放在后台,定时监控进程。

|
二楼的说法靠谱,main函数里做的事情放到子进程里,main里就放一个管理子进程的父进程。

|
Win下是这样实现的。
思想为:

不需要另外创建一个程序,只需创建一个自己的“副本”进程即可。   
  1。接收参数改变,将新参数保存;   
  2。用CreateProcess创建一个自己的“克隆”进程——即新的“Instance”;   
  3。结束自己。   
  4。与此同时,“克隆”进程读取刚才保存的新参数,并且以新的参数开始运行。
void CChatClientDlg::RestartApp()
{
PROCESS_INFORMATION   info;   
STARTUPINFO startup;   
char szPath[128];   
char *szCmdLine;   
    
GetModuleFileName(AfxGetApp()->m_hInstance,   szPath,   sizeof(szPath));   
szCmdLine=GetCommandLine();   
GetStartupInfo(&startup);   
    
BOOL bSucc=CreateProcess(szPath,   szCmdLine,   NULL,   NULL,   
FALSE,   NORMAL_PRIORITY_CLASS,   NULL,   NULL,   &startup,   &info);   
    
if(bSucc)   
{   
CWnd *pWnd=AfxGetMainWnd();   

if(pWnd!=NULL)   
{   
pWnd->PostMessage(WM_CLOSE,   0,   0);//会调用OnCancel
}   
else   
ExitProcess(-1);   
}   
else   
ExitProcess(-1);
}

    
 
 

您可能感兴趣的文章:

  • linux命令如何实现重启父进程而不会使其子进程退出
  • 请教急:shell怎么实现进程监控,重启进程
  • python实现的重启关机程序实例
  • 如何在Linux下用C来实现重启系统的功能
  • Android实现关机重启的方法分享
  • 如何在Linux下使用脚本实现程序的自动重启!望各位详解!
  • Android手机获取root权限并实现关机重启功能的方法
  • 救救我,我在RedHat8.0下激活了拨号网络,在重启后一直在搜寻网络,启动不能继续(不但没有实现上网,并且...)
  • 请教一个问题。如何用Java实现远程控制,一台机器控制另一台,简单的如重启。给个详细的帮助。谢谢。。。
  • VC++简单实现关机、重启计算机实例代码
  • linux QT应用程序, 如何在代码中获取root权限,实现重启电脑
  • 怎样实现在SuseLinux9.0中,实现以任务(脚本)的方式,定期(午夜)重启tomcat。
  • 守护进程接收信号杀死或重启子进程 如何实现?
  • 如何在linux下编程实现系统重启?
  • 用c语言实现HUP信号重启进程的方法
  • c#一个定时重启的小程序实现代码第1/2页
  • C#实现关机重启及注销实例代码
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 编一个模拟shell实现的程序,怎么实现输入输出重定向?谢谢
  • linux下通过crond实现自动执行程序
  • 如何用shell程序实现一个监控程序(内详)
  • HASH查找的程序实现及性能分析
  • applet程序不能实现与application程序之间的通信,怎么办呢?
  • 使用libpcap实现抓包程序的步骤及代码示例
  • 请问能否在linux实现一个应用程序访问另外一个程序的内存数据?
  • c语言基于libpcap实现一个抓包程序过程
  • 实现同样的功能,内核程序和用户程序差别效率上差别大么?
  • 用户程序的ioctl是怎么和驱动程序中的ioctl实现联系
  • 关于linux c程序实现自动实现telnet的问题
  • 问下arm下如何实现memory模式的cf的驱动,程序框架怎么搭!有源程序参考下更好!分数不多全部送上,谢谢了!
  • 在linux实现在任意给定的目录查找文需要的件的程序? 下面的实现思路可不可以呢????
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • socket实现多文件并发传输,求助多线程实现问题?
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • interface 到底有什么用???实现接口,怎么实现??
  • 通过javascript库JQuery实现页面跳转功能代码
  • 怎么用Jsp实现在页面实现树型结构?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • php实现socket实现客户端和服务端数据通信源代码
  • 网站重定向用C语言实现iptables,ACL实现
  • flash AS3反射实现(describeType和getDefinitionByName)
  • 在linux下如何编程实现nslookup命令实现的IP地址和域名互相转换的功能?
  • boost unordered_map和std::list相结合的实现LRU算法
  • 求在freebsd+Squid下实现pc上网的透明代理的实现方法!给出具体配置方法的高分谢!
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • linux下如实现与window下的驱动器实现文件共享??
  • 使用java jdk中的LinkedHashMap实现简单的LRU算法
  • qt如何实现:操作键盘实现数据的滚动?
  • iphone cocos2d 精灵的动画效果(图片,纹理,帧)CCAnimation实现
  • 我想用APPLET实现读取客户端的图片文件,该如何实现?
  • html<pre>标签自动换行实现方法
  • PING是用TCP,还是用UDP来实现的?或是采用其它协议实现的?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3