奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

操作系統

Linux系統中的守護進程講解

時間:2025-02-24 02:57:31 操作系統 我要投稿
  • 相關推薦

Linux系統中的守護進程講解

  守護進程daemon,是生存期較長的一種進程。它們常常在系統自舉時啟動,僅在系統關閉時才終止。因為它們沒有控制終端,所以說它們是在后臺運行的。UNIX系統有很多守護進程,它們執行日常事務活動。

  1、系統自舉

  自舉(bootstrapping)一詞來自于人都是靠自身的自舉機構站立起來的這一思想。計算機必須具備自舉能力將自己所有的元件激活,以便能完成加載操作系統這一目的,然后再由操作系統承擔起那些單靠自舉代碼無法完成的更復雜的任務。

  自舉只有兩個功能:加電自檢和磁盤引導。

  加電自檢:當我們按下計算機電源開關時,頭幾秒鐘機器似乎什么反應也沒有,其實,這時的計算機正在進行加電自檢,以斷定它的所有元件都在正確地工作。如果某個元件有故障,顯示器上就會出現報警提示信息(如果顯示器也不能正常工作,則以一串嘟嘟聲來報警)。由于大多數計算機工作非常可靠,加電自檢報警非常罕見。

  磁盤引導:查找裝有操作系統的磁盤驅動器。從磁盤加載操作系統的原因有二,一是操作系統升級簡單容易,二是使用戶擁有選擇操作系統的自由。

  當加電自檢和磁盤引導完成時,自舉操作就啟動一個讀寫操作系統文件和將它們復制到隨機存儲器中的過程,此時的機器才是真正意義上的計算機。計算機的啟動可以有冷啟動和熱啟動兩種方式 ,它們之間的差別是熱啟動不進行機器的自檢(機器本身配置的檢查與測試),當計算機在使用過程中由于某些原因造成死機時,可以對計算機進行熱啟動處理。

  2、守護進程的概念

  通過ps axj命令可以查看到守護進程:

  參數a表示不僅列當前用戶的進程,也列出所有其他用戶的進程,參數x表示不僅列有控制終端的進程,也列出所有無控制終端的進程,參數j表示列出與作業控制相關的信息。

  代碼如下:PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 0 1 1 1 ? -1 Ss 0 0:01 /sbin/init 0 2 0 0 ? -1 S< 0 0:00 [kthreadd] 2 3 0 0 ? -1 S< 0 0:00 [migration/0] 2 4 0 0 ? -1 S< 0 0:00 [ksoftirqd/0]... 1 2373 2373 2373 ? -1 S<s 0 0:00 /sbin/udevd --daemon... 1 4680 4680 4680 ? -1 Ss 0 0:00 /usr/sbin/acpid -c /etc... 1 4808 4808 4808 ? -1 Ss 102 0:00 /sbin/syslogd -u syslog...

  凡是TPGID一欄寫著-1的都是沒有控制終端的進程,也就是守護進程。在COMMAND一列用[]括起來的名字表示內核線程,這些線程在內核里創建,沒有用戶空間代碼,因此沒有程序文件名和命令行,通常采用以k開頭的名字,表示Kernel。init進程我們已經很熟悉了,udevd負責維護/dev目錄下的設備文件,acpid負責電源管理,syslogd負責維護/var/log下的日志文件,可以看出,守護進程通常采用以d結尾的名字,表示Daemon。 創建守護進程最關鍵的一步是調用setsid函數創建一個新的Session,并成為Session Leader。 例子: C/C++ Code復制內容到剪貼板 void daemonize(void) { pid_t pid; printf("into deamonizen"); if (pid=fork() < 0) { perror("fork"); exit(1); } else if (pid !=0) { exit(0); } setsid(); if (chdir("/") < 0) { perror("chdir"); exit(1); } close(0); open("/dev/null", O_RDWR); dup2(0, 1); dup2(0, 2); printf("out deamonizen"); }

  3、編寫守護進程 在編寫守護進程程序時,需遵循一些基本規則:

 。1)首先要做的是調用umask將文件模式創建屏蔽字設置為0。

 。2)調用fork,然后使父進程退出。

 。3)調用setsid以創建一個新會話。

  (4)將當前工作目錄更改為根目錄。

  (5)關閉不再需要的文件描述符。

 。6)某些守護進程打開/dev/null使其具有文件描述符0、1和2,任何一個試圖讀標準輸入、寫標準輸出或標準出錯的庫例程都不會產生任何效果。 與守護進程有關的一個問題是如何處理出錯消息,需要有一個集中的守護進程出錯記錄設施,這就是syslogd進程。

  4、守護進程慣例 為了正常運作,某些守護進程實現為單實例的,有就是在任一時刻只運行該守護進程的一個副本。文件鎖和記錄鎖機制是一種方法的基礎,該方法用來保證一個守護進程只有一個副本在運行。

  在UNIX系統中,守護進程遵循下列公共慣例:

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

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

 。3)守護進程可用命令行啟動,但通常它們是由系統初始化腳本啟動的。

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

【Linux系統中的守護進程講解】相關文章:

解析Linux系統中的進程調度06-19

解讀Linux系統中的進程調度08-01

Linux系統中查殺僵尸進程方法介紹09-18

linux系統中UMASK權限的用法講解08-17

linux系統中快速查看進程pid的方法10-06

Linux系統下的進程切換的解析08-03

在Linux系統中批量添加用戶的方法講解教程09-11

Linux系統如何查看進程的線程數06-07

linux操作系統要查看系統進程的辦法07-24

主站蜘蛛池模板: 贞丰县| 安乡县| 耒阳市| 镇平县| 台北市| 东阳市| 宜阳县| 新邵县| 汨罗市| 汕尾市| 马龙县| 大理市| 黄大仙区| 泊头市| 上高县| 镇平县| 盐城市| 铜山县| 法库县| 乌兰浩特市| 天津市| 芜湖市| 嘉善县| 奈曼旗| 兴和县| 镇雄县| 扶风县| 宜章县| 庐江县| 张家港市| 鄂尔多斯市| 万全县| 和静县| 钟山县| 房产| 平利县| 恩平市| 林甸县| 扎兰屯市| 乐山市| 四平市|