`
sealbird
  • 浏览: 586582 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

如何调试守护进程

    博客分类:
  • C++
阅读更多
如何调试守护进程
我写了个守护进程,可是如何用gdb 调试呢,我试了attach pid 方法 可是他不能让程序停住呀。

如何调试守护进程

ctrl+c就停住了
如何调试守护进程

realy?

如何调试守护进程

守护进程通常都要通过一个daemon_init()类似的函数将进程转换为守护进程,你可以先将这个转换注释,将其作为一个普通进程调试,调试好了之后再转换为守护进程

如何调试守护进程

不错当前我就是这么做的  可是 你不知道。。 守护进程有些其他的特性 如 程序中用了大量的 字符操作 而且屏幕输出过多的话 就造成了溢出 (一开始没有想把它作为守护进程)  这我就想知道 为什么 守护进程中 的标准输出会造成溢出(大量的)他为什么会把 要输出到一个不存在的stdout设备上的信息写到了内存里地址里面。。

如何调试守护进程

高手们 怎么调呀  哭了

如何调试守护进程

呀,这就哭了?

如何调试守护进程
正在运行的守护进程,可以用 gdb 进程程序名 进程程序pid 来调试

如果在gdb下运行调试子进程,在gdb 下运行命令,set follow-fork-mode child 。

如何调试守护进程

我太谢谢你的回帖了


 #include <unistd.h>
	#include <signal.h>
	#include <sys/param.h>
	#include <sys/types.h>
	#include <sys/stat.h>

   #include <stdio.h>
   #include <time.h>
void init_daemon(void);//守护进程初始化函数
main(){
	FILE *fp;
	time_t t;
	init_daemon();//初始化为Daemon
	while(1)//每隔一分钟向test.log报告运行状态
	{
		sleep(2);//睡眠一分钟
		if((fp=fopen("test.log","a"))>=0){
			t=time(0);
			fprintf(fp,"Im here at %sn",asctime(localtime(&t)) );
			fclose(fp);
		}
	
  }

}

void init_daemon(void)
	{
		int pid;
		int i;
		if(pid=fork())
			exit(0);//是父进程,结束父进程
		else if(pid<0)
			exit(1);//fork失败,退出//是第一子进程,后台继续执行
		setsid();//第一子进程成为新的会话组长和进程组长//并与控制终端分离
		if(pid=fork())
			exit(0);//是第一子进程,结束第一子进程
		else if(pid<0)
			exit(1);//fork失败,退出//是第二子进程,继续//第二子进程不再是会话组长
		for(i=0;i<NOFILE;++i)//关闭打开的文件描述符
			close(i);
		chdir("/cygdrive/e/tmp");//改变工作目录到/tmpumask(0);//重设文件创建掩模
		return;
	} 


	//nIm here at Tue Jan 11 12:21:06 2011
分享到:
评论

相关推荐

    c#实现的守护进程,包含代码

    7. **日志记录**:为了便于调试和故障排查,守护进程应记录关键操作的日志,例如进程启动/关闭事件、错误信息等。 通过这些步骤,我们就可以构建一个能够在C#中实现的守护进程。`WinHook`这个文件可能是实现过程中...

    C#控制台实现的一个简单的守护进程程序

    - 日志记录:为了便于调试和问题排查,守护进程应该记录每次启动、停止或异常情况的详细日志。 - 资源管理:合理地管理内存和CPU使用,避免守护进程自身消耗过多系统资源。 - 通信机制:如果需要与目标程序进行交互...

    Delphi写的守护进程.zip

    《Delphi编写的守护进程详解》 在IT领域,守护进程(Daemon)是一种在后台运行且没有用户界面的程序,通常用于执行特定的任务,如监控系统状态或提供网络服务。在Windows操作系统中,我们可以利用Delphi这样的编程...

    daemon守护进程经典

    在压缩包中的"daemon"文件可能包含一个守护进程的源代码示例,可以用于学习和调试,以加深理解。 守护进程在IT行业中扮演着重要角色,很多关键服务都依赖于它们。学习守护进程的创建和管理对于系统管理员和软件...

    安卓守护进程.zip

    8. 监控和调试:通过Logcat工具,开发者可以监控守护进程的运行日志,以便调试和优化服务性能。 9. 安全性:由于守护进程长时间运行且拥有较高权限,它们成为潜在的安全风险点。开发者应确保代码安全,防止恶意攻击...

    tomcat守护进程.rar

    标题中的“tomcat守护进程.rar”指的是一个关于如何在Windows操作系统下配置Tomcat服务器作为守护进程的教程或代码集合。守护进程(Daemon)通常是指在后台运行而不与用户交互的进程,这种设置允许Tomcat在没有图形...

    Linux守护进程

    下面我们将详细讨论Linux守护进程的创建、工作原理以及如何进行调试。 一、守护进程的创建 创建一个Linux守护进程通常涉及以下几个步骤: 1. **脱离控制终端**:守护进程不应与控制终端关联,因此需要调用`setsid...

    vc MFC 守护进程 实例 release版

    "vc MFC 守护进程 实例 release版"的标题表明这是一个使用Visual C++和MFC开发的守护进程项目,而且已经过优化和调试,进入了发布(release)阶段。这意味着这个程序已经完成了主要的功能开发,进行了性能优化,并且...

    android守护进程

    5. 调整权限:由于守护进程涉及到开机启动和其他系统级别的操作,需要在AndroidManifest.xml中声明相应的权限,如`&lt;uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /&gt;`。 6. 运行和...

    守护进程(android5.1)

    7. **日志服务**:`Logd`守护进程负责收集和管理系统日志,提供调试信息和故障排查帮助。 8. **同步服务**:`SyncManager`处理数据同步,确保应用程序的数据与服务器保持一致。 9. **JobScheduler**:在Android ...

    Windows下 tomcat的守护进程、心跳程序

    ### Windows 下 Tomcat 的守护进程与心跳检测程序详解 在 IT 领域,特别是 Java Web 开发中,Apache Tomcat 是一个非常重要的轻量级应用服务器,它主要用于部署 Java Web 应用程序。在实际生产环境中,为了保证服务...

    linux守护进程

    为了调试和日志记录,守护进程通常会将输出写入日志文件,而不是标准输出。`syslog`库是一个常见的选择,它允许进程将消息发送到系统日志服务。 总结来说,这个项目可能是在创建一个具有更新功能的Linux守护进程,...

    用shell写守护进程

    4. **日志记录**:记录守护进程运行过程中的关键信息,以便于调试和维护。 #### 示例代码解析 1. **shstart.sh**:负责启动sh.sh脚本,并将其PID写入到sh.sid文件中。 ```bash #!/usr/local/bin/bash /home/...

    jc.rar_windows 守护_windows守护进程_守护_进程_进程 守护

    守护进程软件可能会提供额外的功能,例如日志记录、性能监控、错误处理等,帮助用户更好地管理和调试后台服务。在使用这类软件时,需要注意权限问题,确保只有授权的用户或账户才能进行管理和配置。 综上所述,"jc....

    LINUX守护进程介绍

    这个守护进程监测系统的电源状态,例如笔记本电脑的电池电量,并根据预设策略进行操作,如发出警告、调整性能或在电量过低时自动关机。 3. **Arpwatch**:记录日志并构建以太网地址和IP地址对数据库。Arpwatch监视...

    windows守护进程代码

    在Windows操作系统中,"守护进程"这一概念通常与Linux或Unix系统相关,因为它们使用守护进程(Daemon)来后台运行服务。然而,在Windows系统中,类似的后台服务被称为"服务"。"windows守护进程代码"可能是指创建或...

    C#编写进程守护程序

    这样,用户无需修改代码即可调整守护程序的行为。 9. **资源管理**:守护程序需要有效地管理内存和CPU资源,避免自身消耗过多系统资源,影响被监控程序的性能。 10. **线程安全**:在多线程环境中,确保对进程操作...

    linux上通过sh方式启动java jar程序并做为守护进程

    在Linux系统中,Java应用程序通常以两种主要方式运行:直接通过命令行或作为守护进程(daemon)。本篇文章将深入探讨如何使用`sh`脚本来启动Java的JAR程序,并将其设置为守护进程,以便在后台持续运行,即使用户注销...

Global site tag (gtag.js) - Google Analytics