Linux主控程序
Linux主控程序
6.1、Liunx程序的整體思路。init進程是Linux內核啟動的第一個進程,它是后續所有進程的發起者。本系統的init進程為指向rc進程的鏈接,因此rc進程為主進程,是進入內核首先運行的程序,做初始,在主進程程序中再啟動其它子進程。掛起等待進程信號。子進程通過發信號通知主進程、主進程收到信號后做某些事物處理或啟動或關閉其它子進程。此外有些進程之間是通過socket套接字進行通信。對于有些進程是程序運行一次即退出,有些進程是程序一直循環運行。6.1、rc程序;
導讀6.1、Liunx程序的整體思路。init進程是Linux內核啟動的第一個進程,它是后續所有進程的發起者。本系統的init進程為指向rc進程的鏈接,因此rc進程為主進程,是進入內核首先運行的程序,做初始,在主進程程序中再啟動其它子進程。掛起等待進程信號。子進程通過發信號通知主進程、主進程收到信號后做某些事物處理或啟動或關閉其它子進程。此外有些進程之間是通過socket套接字進行通信。對于有些進程是程序運行一次即退出,有些進程是程序一直循環運行。6.1、rc程序;
![](https://img.51dongshi.com/20250105/wz/18528813152.jpg)
系統大全為您提供6.1、Liunx程序的整體思路init進程是Linux內核啟動的第一個進程,它是后續所有進程的發起者。本系統的init進程為指向rc進程的鏈接,因此rc進程為主進程,是進入內核首先運行的程序,做初始,在主進程程序中再啟動其它子進程。掛起等待進程信號。子進程通過發信號通知主進程、主進程收到信號后做某些事物處理或啟動或關閉其它子進程。此外有些進程之間是通過socket套接字進行通信。對于有些進程是程序運行一次即退出,有些進程是程序一直循環運行。6.1、rc程序主進序名為rc,init、ip-up、ip-down、dtu-dns、start_watchdog、start-lan、stop-lan、start_timer等這些進程都是指向rc的連接,當運行這些進程時rc進程根據進程參數判斷執行哪些處理程序,如果運行的是init指示符,則進入RC主循環執行。6.3、初始化運行環境主循環包括以下幾部分的初始化:1、系統初始化掛載系統相關目錄所有設備結點的生成掛載flash分區相關目錄創建參數文件的鏈接創建相關目錄設備參數初始化控制臺初始化內核模塊載入時區設置、系統時間與硬件同步內置硬件看門狗啟動外置硬件看門狗啟動2、GPIO初始化打開關閉相關指示燈、打開模塊電源、關閉子板電源關閉不用的GPIO打開子板電源各模塊初始化3、局域網開啟4、信號初始化信號初始化注冊信號5、配置文件初始化PPP拔號相關配置文件DTU參數配置文件網控器參數配置文件電話或短信觸發配置文件ICMP檢測配置文件DNS檢測配置文件DDNS參數配置文件維護通道參數配置文件6.4、運行各種進程1、開啟TCP本地server開啟流程:圖6.2?本地server進程流程圖2、開啟各種服務Httpd服務器開啟DTU客戶端連接開啟Dhcpd服務開啟Telnet服務開啟監視重復進程數量服務開啟流量統計開啟6.5、確保PPPD進程正確運行1、運行pppd之前先判斷模塊接口是否可以正常打開,如果打開異常則重啟系統。2、運行pppd后每隔1秒判斷是否生成/tmppnk.文件,在超時時間內沒生成則重新撥號。3、重新運行pppd前要對模塊做復位處理,斷開pppd連接避免上次運行的pppd沒退出。4、pppd撥號成功開啟網絡測試功能,避免pppd自身檢測不到掉線。6.6、運行至循環處理主程序初始化完畢,相關服務開啟后開始進入主循環處理,主循環中開始撥號上線及上線后的各種處理,最后空閑掛起等待事件信號。主循環主要是監控PPPD和WAN是否有異常,發現異常則做相應的處理,處理流程:圖6.3?主進程主循環流程圖如上面的流程圖可以看出,主循環是一個狀態機。當有進程發來信號時,信號處理函數改變狀態的值,主循環跳出IDLE狀態,到RESTART,或STOP狀態,再次循環執行,最后穩定到空閑狀態。常見的是當PPPD下線運行ip-down進程,該進程發信號給主進程,主進程到RESTART狀態。主程序重新運行撥號處理。6.7、信號的使用信號是UNIX和Linux系統響應某些條件而產生的一個事件,接收到該信號的進程會相應地采取一些行動。通常信號是由一個錯誤產生的。但它們還可以作為進程間通信或修改行為的一種方式,明確地由一個進程發送給另一個進程。一個信號的產生叫生成,接收到一個信號叫捕獲。需要包含的頭文件:#include?
信號的使用包括以下步驟:1、注冊一個信號。例如:signal(SIGHUP,?rc_signal);2、信號處理函數。static?void?rc_signal(int?sig){……if?(sig?==?SIGHUP)?{syslog(6,"signalling?RESTART");signalled?=?RESTART;}……}3、發送信號給主進程發信號:kill(1,?SIGHUP);???以上就是系統大全給大家介紹的如何使的方法都有一定的了解了吧,好了,如果大家還想了解更多的資訊,那就趕緊點擊系統大全官網吧。??本文來自系統大全http:///如需轉載請注明!推薦:win7純凈版
Linux主控程序
6.1、Liunx程序的整體思路。init進程是Linux內核啟動的第一個進程,它是后續所有進程的發起者。本系統的init進程為指向rc進程的鏈接,因此rc進程為主進程,是進入內核首先運行的程序,做初始,在主進程程序中再啟動其它子進程。掛起等待進程信號。子進程通過發信號通知主進程、主進程收到信號后做某些事物處理或啟動或關閉其它子進程。此外有些進程之間是通過socket套接字進行通信。對于有些進程是程序運行一次即退出,有些進程是程序一直循環運行。6.1、rc程序;
為你推薦