我有一个守护进程在运行过程中挂在某个地方不动了,我想看看是哪里出了问题,怎样打印出他的函数调用栈呢,用gdb的attach可以吗
by yuexiaduzhuo_cu - C/C++ - 2013-03-21 21:10:20 阅读(2871) 回复(8)
引言:在嵌入式Linux系统中,因为经常会碰到要让一些应用(进程)在启动的时候就执行,并且永远执行到系统结束为止的问题,所以,对 一个合格的嵌入式Linux工程师而言,必须学会守护进程的编写。 由来:在Linux中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些 进程的控制终端,当控制终端被关闭时,相应的进程都会被自动关闭。但是守护进程却能够突破这种限制,...
小弟最近写了一个moto手机的屏幕锁程序,发现后台运行的时候比较费电 使用setitimer,ITIMER_REAL,每隔1s运行一下检测程序 在checkroutine里面只是检测了一些flag,没有做很复杂的事情,理论上说,应该不会很费电的 不知道大侠们有没有什么好的建议和意见,谢谢!
APUE2上第13章,有个创建守护进程的程序,该程序中的第1步和第2步为:(1)更改进程的文件屏蔽字(2)创建子进程,退出父进程,第2步的目的应该是脱离终端,避免受控制终端影响,这里为什么不先调用第2步,假设该进程是某个进程的子进程且有控制终端,当先调用第1步时,是否有可能受到从父进程继承的控制终端的影响。
守护进程实例 守护进程实例包括两部分:主程序test.c和初始化程序init.c。 主程序每隔一分钟向/tmp目录中的日志test.log报告运行状态。 初始化程序中的init_daemon函数负责生成守护进程。读者可以利用init_daemon函数生成自己的守护进程。 1. init.c清单 #include #include #include #include #include void init_daemon(void) { int pid; int i; if(pid=fork()) exit(0); //是父进...
所谓守护进程即为(这是个人理解哈)脱离父进程,脱离shell控制的,寄存于系统进程(init进程)的一种进程(从专业的文档上摘录下来的为这个说的:守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引 导装入时启动,在系统关闭时终止。unix系统有很多守护进程,大多数服务器都是用守护进程实现的。比如,网络服务inetd、Web服务http等。同 时,守护进程完成...
大家帮我看看这段代码,想写一个守护进程,为什么ps之后产生了两个进程?
1 4751 4750 4750 ? -1 S 500 0:00 ./a.out
1 4752 4749 4139 pts/0 4753 S 500 0:00 ./a.out
#include
linux守护进程原理及实现很多资料都有讲述,在此不做赘述,仅粘贴一程序轮廓,省得到时候翻书。 #include #include #include #include int main(int argc, char **argv) { int ret = 0; char pout[32]; pid_t pid, sid; FILE *pfile=NULL; pid = fork(); if ( pid 0 ) { exit(EXIT_SUCCESS); } if ( (sid = setsid()) < 0 ) { exit(EXIT_FAILURE); } if ( chdir("/") < 0 ) { ...
.守护进程是执行特定功能或执行系统相关任务的后台进程,在系统引导时自动启动,并只要系统不停机它们就会连续运行 .init是系统引导后第一个启动的进程, 它是最重要的守护进程 .cron守护进程(RedHat上叫crond) 负责在预定时间运行命令 .inetd(SuSE和Debian和Ubuntu上)管理守护进程, 它用来管理其他守护进程 有工作要inetd的客户守护进程去做时,inetd就启动它,任务完成后, inetd负责终止它们 它只和通过网络提供服务的守护进程...
.守护进程是执行特定功能或执行系统相关任务的后台进程,在系统引导时自动启动,并只要系统不停机它们就会连续运行 .init是系统引导后第一个启动的进程, 它是最重要的守护进程 .cron守护进程(RedHat上叫crond) 负责在预定时间运行命令 .inetd(SuSE和Debian和Ubuntu上)管理守护进程, 它用来管理其他守护进程 有工作要inetd的客户守护进程去做时,inetd就启动它,任务完成后, inetd负责终止它们 它只和通过网络提供服务的守护进程...
6.5.1 基本概念 守护进程就是在后台执行, 没有控制终端或登录 Shell 的进程 6.5.2 实现方法 关闭文件描述符: for (i=0; i =============================================================================== * 使用 setsid 设置为新会话的领头进程 * 因为 setsid 要求调用进程不是会话的领头进程时才有效. * 因此, 首先可用 fork 派生, 并结束父进程. * 之后调用 setsid, 子进程成为新会话的领头进程, 从而与...