voidopenlog(constchar*ident,intoption,intfacility);voidsyslog(intpriority,constchar*format,...);voidcloselog(void);intsetlogmask(intmaskpri);//除syslog,很多平臺還提供它的一種變體來處理可變參數列表#include#incl" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

UNIX環境高級編程 守護進程

系統 1638 0

?

?

?

相關函數列表

      //syslog函數
#include <syslog.h>
void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format,...);
void closelog(void);
int setlogmask(int maskpri);

//除syslog,很多平臺還提供它的一種變體來處理可變參數列表
#include <syslog.h>
#include <stdarg.h>
void vsyslog(int priority, const char *format, va_list arg);


    

?

?

ps -efj

結構如下

      UID        PID  PPID  PGID   SID  C STIME TTY          TIME CMD
root         1     0     1     1  0 Aug07 ?        00:00:01 /sbin/init
root         2     0     0     0  0 Aug07 ?        00:00:00 [kthreadd]
root         3     2     0     0  0 Aug07 ?        00:00:00 [migration/0]
root         4     2     0     0  0 Aug07 ?        00:00:02 [ksoftirqd/0]
root         5     2     0     0  0 Aug07 ?        00:00:00 [migration/0]
root         6     2     0     0  0 Aug07 ?        00:00:10 [watchdog/0]
root         7     2     0     0  0 Aug07 ?        00:03:41 [events/0]
root         8     2     0     0  0 Aug07 ?        00:00:00 [cgroup]
root         9     2     0     0  0 Aug07 ?        00:00:00 [khelper]
root        10     2     0     0  0 Aug07 ?        00:00:00 [netns]
root        11     2     0     0  0 Aug07 ?        00:00:00 [async/mgr]
root        12     2     0     0  0 Aug07 ?        00:00:00 [pm]
root        13     2     0     0  0 Aug07 ?        00:00:18 [sync_supers]
root        14     2     0     0  0 Aug07 ?        00:00:20 [bdi-default]
root        15     2     0     0  0 Aug07 ?        00:00:00 [kintegrityd/0]
root        16     2     0     0  0 Aug07 ?        00:00:01 [kblockd/0]
root        17     2     0     0  0 Aug07 ?        00:00:00 [kacpid]
root        18     2     0     0  0 Aug07 ?        00:00:00 [kacpi_notify]
root        19     2     0     0  0 Aug07 ?        00:00:00 [kacpi_hotplug]
root        20     2     0     0  0 Aug07 ?        00:00:00 [ata/0]
root        21     2     0     0  0 Aug07 ?        00:00:00 [ata_aux]
root        22     2     0     0  0 Aug07 ?        00:00:00 [ksuspend_usbd]
root        23     2     0     0  0 Aug07 ?        00:00:00 [khubd]
root        24     2     0     0  0 Aug07 ?        00:00:00 [kseriod]
root        25     2     0     0  0 Aug07 ?        00:00:00 [md/0]
root        26     2     0     0  0 Aug07 ?        00:00:00 [md_misc/0]
root        27     2     0     0  0 Aug07 ?        00:00:01 [khungtaskd]
root        28     2     0     0  0 Aug07 ?        00:00:00 [kswapd0]
root        29     2     0     0  0 Aug07 ?        00:00:00 [ksmd]
root        30     2     0     0  0 Aug07 ?        00:00:00 [khugepaged]
root        31     2     0     0  0 Aug07 ?        00:00:00 [aio/0]
root        32     2     0     0  0 Aug07 ?        00:00:00 [crypto/0]
root        37     2     0     0  0 Aug07 ?        00:00:00 [kthrotld/0]
root        39     2     0     0  0 Aug07 ?        00:00:00 [kpsmoused]
root        40     2     0     0  0 Aug07 ?        00:00:00 [usbhid_resumer]
root        70     2     0     0  0 Aug07 ?        00:00:00 [kstriped]
root       275     2     0     0  0 Aug07 ?        00:00:00 [scsi_eh_0]
root       276     2     0     0  0 Aug07 ?        00:00:00 [scsi_eh_1]
root       359     2     0     0  0 Aug07 ?        00:00:00 [virtio-blk]
root       380     2     0     0  0 Aug07 ?        00:00:00 [jbd2/vda1-8]
root       381     2     0     0  0 Aug07 ?        00:00:00 [ext4-dio-unwrit]
root       430     2     0     0  0 Aug07 ?        00:00:00 [kauditd]
root       709     2     0     0  0 Aug07 ?        00:00:00 [virtio-net]
root       839     2     0     0  0 Aug07 ?        00:00:00 [vballoon]
root       906     2     0     0  0 Aug07 ?        00:00:00 [kjournald]
    

以上分別是用戶ID,進程ID,父進程ID,進程組ID,會話ID,終端名稱以及命令字符串

?

?

Linux中的守護進程

1.kswapd守護進程也稱為內存換頁守護進程。它支持虛擬內存子系統在經過一段時間后將臟頁面慢慢的寫會

? ?磁盤來回收這些頁面

2.flush守護進程再可用內存達到設置的最小閥值時將臟頁面刷新到磁盤。它也定期的將臟頁面刷新回磁盤來

? ?減少在系統出現故障時發生的數據丟失。多個刷新守護進程可以同時存在,每個寫回設備都有一個刷新守護

? ?進程。輸出實例中顯示一個名為flush-8:0的刷新守護進程。從名字可以看出,寫回設備室通過主設備號(8)和

? ?副設備號(0)來識別的

3.sync_supers守護進程定期將文件系統刷新到磁盤

4.jbd守護進程幫助實現了ext4文件系統中的日志功能

5.rpcbind守護進程提供將遠程過程調用(Remote Procedure Call RPC)程序號映射為網絡端口號的服務。

? ?syslogd守護進程可以被由管理員啟動的將系統消息記入日志的任何程序使用。可以在一臺實際的控制臺上

? ?打印這些消息,也可以將他們寫到一個文件中。

6.cron守護進程再定期安排的日期和時間執行命令。

?

?

編寫守護進程時需要遵循一些基本規則 ,以防產生不必要的交互:

1)首先調用umask將文件模式創建屏蔽字設置為一個已知值(通常是0),由繼承的來的文件模式創建屏蔽字

? ?可能會被設置為拒絕某些權限。如果守護進程要創建文件,那么它可能要設置特定的權限。

2)調用fork,然后使父進程exit,這樣做實現下面幾點

? ? a)如果該守護進程是作為第一條簡單的shell命令啟動的,那么父進程終止會讓shell認為這條命令已經執行

? ? ? ?完畢

? ? ?b)雖然子進程繼承了父進程的進程組ID,但獲得了一個新的進程ID,這樣就保證了子進程不是一個進程組

? ? ? ? 的組長進程,這是蝦米要進行的setsid調用的先決條件

3)調用setsid建一個會話,然后

? ? ?a)使進程成為會話的首進程

? ? ?b)成為一個新進程進程組的組長進程

? ? ?c)沒有控制終端

4)將當前工作目錄更改為根目錄。從父進程處繼承過來的當前工作目錄可能再一個掛載的文件系統中。因為

? ? 守護進程通常在系統再引導之前是一直存在的,所以如果守護進程的當前工作目錄在一個掛載文件系統

? ? 中,那么該文件系統就不能被卸載。

5)關閉不在需要的文件描述符,這使得守護進程不再持有從父進程繼承來的任何文件描述符(父進程可能是

? ? shell進程,或者其他某個進程)。可以使用open_max函數或getrlimit函數來判定最高文件描述符值,并

? ? 關閉知道該值的所有描述符

6)某些守護進程打開/dev/null使其具有文件描述符0,1,2這樣,任何一個試圖讀標準輸入,寫標準輸出

? ?或標準錯誤的庫例程都不會產生任何效果。因為守護進程并不與終端設備相關聯

?

?

?

出錯記錄

守護進程調用syslog函數,將日志寫入到一個集中式的地方

有以下三種產生日志消息的方法

1)內核例程可以調用log函數,任何一個用戶進程都可以通過打開(open)并讀取/dev/klog設備來讀取這些

? ?消息

2)大多數用戶進程(守護進程)調用syslog函數來產生日志消息,這使得消息發送至UNIX域數據報字段/dev/log

3)無論一個用戶進程是在此主機上,還是通過TCP/IP網絡連接到此主機的其他主機上,都可以將日志消息

? ?發向UDP端口514。syslog函數從不產生這些UDP數據報他們要求產生次消息日志的進程進行顯示的網絡

? ?編程

?

BSD的syslog設施

UNIX環境高級編程 守護進程
?

?

?

syslog的 openlog函數的option參數

option 說明
LOG_CONS 若日志消息不能通過UNXI域數據報發送至syslogd,則將消息寫至控制臺
LOG_NEDLAY

立即打開至syslogd守護進程的UNIX域數據報套接字,不要等到第一條消息已經被記錄時

再打開。通常在記錄第一條消息之前,不打開該套接字

LOG_NOWAIT

不要等待在將消息記入日志過程中可能已創建的子進程。因為再syslog調用wait時,應用

程序可能已獲得了子進程的狀態,這種處理阻止了與捕捉SIGCHLD信號的應用程序之間

產生的沖突

LOG_ODELAY 在第一條消息被記錄之前延遲打開至syslogd守護進程的連接
LOG_PERROR 除將日志消息發送給syslogd外,還將它寫至標準出錯(在Solaris上不可用)
LOG_PID

記錄每條消息都要包含進程ID,此選項可供對每個不同的請求都fork一個子進程的守護

進程使用(與從不調用fork的守護進程相比較,如syslogd)

?

openlog的facility參數

facility 說明
LOG_AUDIT 審計設施
LOG_AUTH 授權程序login,su,getty等
LOG_AUTHPRIV

與LOG_AUTH相同,但寫日志文件時

具有權限限制

LOG_CONCOLE 將消息寫入/dev/console
LOG_CRON cron和at
LOG_DAEMON 系統守護進程inetd,routed等
LOG_FTP FTP守護進程ftpd
LOG_KERN 內核產生消息
LOG_LOCAL0 保留由本地使用
LOG_LOCAL1 保留由本地使用
LOG_LOCAL2 保留由本地使用
LOG_LOCAL3 保留由本地使用
LOG_LOCAL4 保留由本地使用
LOG_LOCAL5 保留由本地使用
LOG_LOCAL6 保留由本地使用
LOG_LOCAL7 保留由本地使用
LOG_LPR 行式打印機系統lpd,lpc等
LOG_MAIL 郵件系統
LOG_NEWS Usenet網絡新聞系統
LOG_NTP 網絡時間協議系統
LOG_SECURITY 安全子系統
LOG_SYSLOG syslogd收緊進程本身
LOG_USER 來自掐用戶進程的消息(默認)
LOG_UUCP UUCP系統

?

syslog中的level(按序排列)

level 說明
LOG_EMERG 緊急(系統不可使用)(最高優先級)
LOG_ALERT 必須立即修復的情況
LOG_CRIT 嚴重情況(如硬件設備處錯)
LOG_ERR 出錯情況
LOG_WARNING 警告情況
LOG_NOTICE 正常但重要的情況
LOG_INFO 信息性消息
LOG_DEBUG 調試消息(最低優先級)

?

?

?

守護進程遵循以下通用慣例:

1)若守護進程使用鎖文件,那么該文件通常存儲在/var/run目錄中。鎖文件的名字通常是name.pid,如cron.pid是

2)若守護進程支持配置選項,那么配置文件通常放在/etc/目錄中。配置文件的名字通常是name.conf,其中

? ? name是該守護進程或服務的名字,如syslogd守護進程的配置文件通常是/etc/syslog.conf

3)守護進程可用命令行啟動,但通常他們是系統初始化腳本之一(/etc/rc*或/etc/init.d/*)啟動的。如果守護進程

? ?終止時,應當自動的重啟動它,則我們可在/etc/inittab中為該守護進程包括respawn記錄項,這樣init就將

? ?重新啟動該守護進程

4)若一個守護進程有一個配置文件,那么當該守護進程啟動時會讀該文件,但在此之后一般就不會再查看它。

? ?若更改了配置文件,那么守護進程應該重啟。為避免這種麻煩,某些守護進程將捕捉SIGHUP信號,當他們

? ?接收到該信號時,重新讀配置文件。因為守護進程并不與終端相結合,他們活是無控制終端的會話首進程,或

? ?是孤兒進程組中的成員,所以守護進程沒有理由期望接收SIGHUP,守護進程可以安全的重復使用SIGHUP

?

?

?

?

?

參考

BSD syslog協議的格式

?

?

?

?

?

UNIX環境高級編程 守護進程


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 中文字幕在线播放 | www.黄色网.com| 欧美视频在线视频 | 成人精品一区二区三区校园激情 | 韩国精品免费视频 | 色偷偷亚洲男人 | 看黄网站在线看 | 日本黄色免费网址 | 毛片在线免费 | 91香蕉国产视频 | 色综合久久天天综合网 | naruto henta| 天天干干干 | 亚洲一区二区三区免费视频 | 九九热色| av一区二区三区 | 国产成人a | 国产视频久久 | 手机在线看片国产日韩生活片 | 午夜免费| 亚洲 欧美 日韩在线 | 美女国产精品 | 嫩草国产 | 亚洲精品色综合久久 | 久久精品一 | 奇米影视7777 | 欧美综合国产精品久久丁香 | 国产理论自拍 | 999av视频 | 亚洲一区二区久久 | 久久综合九色综合国产 | 亚洲国产精品久久人人爱 | 在线成人av观看 | 中文字幕亚洲图片 | pornoⅹxxxxhd麻豆 | 久久久久久国产精品免费免费 | 日本高清无遮挡 | 国产在视频一区二区三区吞精 | 啪啪小视频网站 | 日本午夜看x费免 | 在线国产视频 |