<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 進(jìn)程控制開(kāi)發(fā)之:Linux守護(hù)進(jìn)程

          進(jìn)程控制開(kāi)發(fā)之:Linux守護(hù)進(jìn)程

          作者: 時(shí)間:2013-09-13 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/257130.htm

          7.3.3的出錯(cuò)處理

          讀者在前面編寫(xiě)的具體調(diào)試過(guò)程中會(huì)發(fā)現(xiàn),由于完全脫離了控制終端,因此,不能像其他普通進(jìn)程一樣將錯(cuò)誤信息輸出到控制終端來(lái)通知程序員,即使使用gdb也無(wú)法正常調(diào)試。那么,守護(hù)進(jìn)程的進(jìn)程要如何調(diào)試呢?一種通用的辦法是使用syslog服務(wù),將程序中的出錯(cuò)信息輸入到系統(tǒng)日志文件中(例如:“/var/log/messages”),從而可以直觀地看到程序的問(wèn)題所在。

          注意

          “/var/log/message”系統(tǒng)日志文件只能由擁有root權(quán)限的超級(jí)用戶查看。在不同發(fā)行版本中,系統(tǒng)日志文件路徑全名可能有所不同,例如可能是”/var/log/syslog”

          syslog是中的系統(tǒng)日志管理服務(wù),通過(guò)守護(hù)進(jìn)程syslogd來(lái)維護(hù)。該守護(hù)進(jìn)程在啟動(dòng)時(shí)會(huì)讀一個(gè)配置文件“/etc/syslog.conf”。該文件決定了不同種類(lèi)的消息會(huì)發(fā)送向何處。例如,緊急消息可被送向系統(tǒng)管理員并在控制臺(tái)上顯示,而警告消息則可被記錄到一個(gè)文件中。

          該機(jī)制提供了3個(gè)syslog相關(guān)函數(shù),分別為openlog()、syslog()和closelog()。下面就分別介紹這3個(gè)函數(shù)。

          (1)syslog相關(guān)函數(shù)說(shuō)明。

          通常,openlog()函數(shù)用于打開(kāi)系統(tǒng)日志服務(wù)的一個(gè)連接;syslog()函數(shù)是用于向日志文件中寫(xiě)入消息,在這里可以規(guī)定消息的優(yōu)先級(jí)、消息輸出格式等;closelog()函數(shù)是用于關(guān)閉系統(tǒng)日志服務(wù)的連接。

          (2)syslog相關(guān)函數(shù)格式。

          表7.9列出了openlog()函數(shù)的語(yǔ)法規(guī)范。

          表7.9 openlog()函數(shù)語(yǔ)法

          所需頭文件

          #includesyslog.h>

          函數(shù)原型

          voidopenlog(char*ident,intoption,intfacility)

          函數(shù)傳入值

          ident

          要向每個(gè)消息加入的字符串,通常為程序的名稱

          option

          LOG_CONS:如果消息無(wú)法送到系統(tǒng)日志服務(wù),則直接輸出到系統(tǒng)控制終端

          LOG_NDELAY:立即打開(kāi)系統(tǒng)日志服務(wù)的連接。在正常情況下,直接發(fā)送到第一條消息時(shí)才打開(kāi)連接

          LOG_PERROR:將消息也同時(shí)送到stderr上

          LOG_PID:在每條消息中包含進(jìn)程的PID

          facility:指定程序發(fā)送的消息類(lèi)型

          LOG_AUTHPRIV:安全/授權(quán)信息

          LOG_CRON:時(shí)間守護(hù)進(jìn)程(cron及at)

          LOG_DAEMON:其他系統(tǒng)守護(hù)進(jìn)程

          LOG_KERN:內(nèi)核信息

          LOG_LOCAL[0~7]:保留

          LOG_LPR:行打印機(jī)子系統(tǒng)

          LOG_MAIL:郵件子系統(tǒng)

          LOG_NEWS:新聞子系統(tǒng)

          LOG_SYSLOG:syslogd內(nèi)部所產(chǎn)生的信息

          LOG_USER:一般使用者等級(jí)信息

          LOG_UUCP:UUCP子系統(tǒng)

          表7.10列出了syslog()函數(shù)的語(yǔ)法規(guī)范。

          表7.10 syslog()函數(shù)語(yǔ)法

          所需頭文件

          #includesyslog.h>

          函數(shù)原型

          voidsyslog(intpriority,char*format,...)

          函數(shù)傳入值

          priority:指定消息的重要性

          LOG_EMERG:系統(tǒng)無(wú)法使用

          LOG_ALERT:需要立即采取措施

          LOG_CRIT:有重要情況發(fā)生

          LOG_ERR:有錯(cuò)誤發(fā)生

          LOG_WARNING:有警告發(fā)生

          LOG_NOTICE:正常情況,但也是重要情況

          LOG_INFO:信息消息

          LOG_DEBUG:調(diào)試信息

          format

          以字符串指針的形式表示輸出的格式,類(lèi)似printf中的格式

          表7.11列出了closelog()函數(shù)的語(yǔ)法規(guī)范。

          表7.11 closelog函數(shù)語(yǔ)法

          所需頭文件

          #includesyslog.h>

          函數(shù)原型

          voidcloselog(void)

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          pid控制相關(guān)文章:pid控制原理


          linux相關(guān)文章:linux教程


          pid控制器相關(guān)文章:pid控制器原理




          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();