作者jmywbs (JmyWbs)
看板LinuxDev
标题[问题] 关於daemon cpu usage
时间Sun Oct 31 12:45:24 2010
各位好
目前正学习於 fedora 13 下写一daemon,
此daemon的目的是判断:当设定时间等於目前时间,则开启一个程式(执行档 AAA )。
状况是:
1.由系统监控发现 AAA 所占的CPU 是90%~100%,状态是执行中,等待频道 0。
AAA 功能正常。
2.若不close STDOUT_FILENO,
则 AAA 所占的CPU 是 0%,状态是睡眠中,等待频道 poll_schedule_timeout,
但 AAA 会当掉。
3.若直接执行 AAA (不经由 daemon 开启),AAA 所占的 CPU 及功能皆正常。
想请问
是否与 AAA 有关?
原因?
及指引小弟解决方案,谢谢。
=============================================================================
code 如下:
pid_t pid, sid;
pid = fork();
if ( pid < 0 )
{
exit(EXIT_FAILURE);
}
if ( pid > 0 )
{
exit(EXIT_SUCCESS);
}
umask( 0 );
sid = setsid();
if ( sid < 0 )
{
exit(EXIT_FAILURE);
}
if ((chdir("/")) < 0)
{
exit(EXIT_FAILURE);
}
close ( STDIN_FILENO );
close ( STDOUT_FILENO );
close ( STDERR_FILENO );
while( 1 )
{
if(目前的时间==指定的时间)
system("执行档的绝对路径");
sleep(60);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.110.49