新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 進程控制開發之:Linux守護進程

        進程控制開發之:Linux守護進程

        作者: 時間:2013-09-13 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/257130.htm

        7.3.3的出錯處理

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

        注意

        “/var/log/message”系統日志文件只能由擁有root權限的超級用戶查看。在不同發行版本中,系統日志文件路徑全名可能有所不同,例如可能是”/var/log/syslog”

        syslog是中的系統日志管理服務,通過守護進程syslogd來維護。該守護進程在啟動時會讀一個配置文件“/etc/syslog.conf”。該文件決定了不同種類的消息會發送向何處。例如,緊急消息可被送向系統管理員并在控制臺上顯示,而警告消息則可被記錄到一個文件中。

        該機制提供了3個syslog相關函數,分別為openlog()、syslog()和closelog()。下面就分別介紹這3個函數。

        (1)syslog相關函數說明。

        通常,openlog()函數用于打開系統日志服務的一個連接;syslog()函數是用于向日志文件中寫入消息,在這里可以規定消息的優先級、消息輸出格式等;closelog()函數是用于關閉系統日志服務的連接。

        (2)syslog相關函數格式。

        表7.9列出了openlog()函數的語法規范。

        表7.9 openlog()函數語法

        所需頭文件

        #includesyslog.h>

        函數原型

        voidopenlog(char*ident,intoption,intfacility)

        函數傳入值

        ident

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

        option

        LOG_CONS:如果消息無法送到系統日志服務,則直接輸出到系統控制終端

        LOG_NDELAY:立即打開系統日志服務的連接。在正常情況下,直接發送到第一條消息時才打開連接

        LOG_PERROR:將消息也同時送到stderr上

        LOG_PID:在每條消息中包含進程的PID

        facility:指定程序發送的消息類型

        LOG_AUTHPRIV:安全/授權信息

        LOG_CRON:時間守護進程(cron及at)

        LOG_DAEMON:其他系統守護進程

        LOG_KERN:內核信息

        LOG_LOCAL[0~7]:保留

        LOG_LPR:行打印機子系統

        LOG_MAIL:郵件子系統

        LOG_NEWS:新聞子系統

        LOG_SYSLOG:syslogd內部所產生的信息

        LOG_USER:一般使用者等級信息

        LOG_UUCP:UUCP子系統

        表7.10列出了syslog()函數的語法規范。

        表7.10 syslog()函數語法

        所需頭文件

        #includesyslog.h>

        函數原型

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

        函數傳入值

        priority:指定消息的重要性

        LOG_EMERG:系統無法使用

        LOG_ALERT:需要立即采取措施

        LOG_CRIT:有重要情況發生

        LOG_ERR:有錯誤發生

        LOG_WARNING:有警告發生

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

        LOG_INFO:信息消息

        LOG_DEBUG:調試信息

        format

        以字符串指針的形式表示輸出的格式,類似printf中的格式

        表7.11列出了closelog()函數的語法規范。

        表7.11 closelog函數語法

        所需頭文件

        #includesyslog.h>

        函數原型

        voidcloselog(void)

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

        pid控制相關文章:pid控制原理


        linux相關文章:linux教程


        pid控制器相關文章:pid控制器原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 侯马市| 永和县| 安福县| 沙雅县| 芦山县| 南通市| 交城县| 兴文县| 张家口市| 增城市| 吉木乃县| 西林县| 台北市| 宜兰市| 新泰市| 罗定市| 宕昌县| 灵璧县| 广水市| 桂阳县| 从江县| 康定县| 安乡县| 桐梓县| 镇康县| 盐亭县| 峡江县| 郓城县| 化德县| 中卫市| 古蔺县| 塔河县| 永胜县| 郓城县| 博湖县| 屯留县| 鹤山市| 陇川县| 海兴县| 庆安县| 桂平市|