[問題] 關於daemon cpu usage
各位好
目前正學習於 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
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章