<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                `daemon`:守護進程,后臺程序 [TOC] ## 類型 ### stand_alone daemon(專門業務窗口) 可自行啟動而不需通過其他機制的管理。啟動并加載到內存后就一直占用內存與系統資源。 * 優點:在內存里持續提供服務,響應速度快。 * 缺點:持續占用內存與系統資源。 常見的stand_alone daemon: * 提供WWW服務:`httpd` * 提供FTP服務:`vsftpd` * 實現循環型例行性工作調度服務:`crond` ### super daemon(綜合業務窗口) 常駐內存,負責響應客戶端的請求,加載對應的服務(未被啟動的進程)到內存(成為daemon)響應請求,服務處理完畢請求與客戶端連接關閉后就刪除服務,釋放服務所占用的系統資源。 * 優點:具有安全管控的機制(類似防火墻);啟用的服務不會一直占用系統資源,與客戶端的連接關閉后就釋放系統資源。 * 缺點:服務的反應時間會慢一點。 早期的super daemon是`inetd`,后來被`xinetd`所代替。 常見的需要super daemon喚醒的服務: telnet 處理模式: * multi-threaded(多線程) 一個服務同時有多個進程(并行處理)。 * single-threaded(單線程) 一個服務只有一個進程(串行處理)。 ### signal-control 這種工作形態的daemon,任何客戶端的請求進入,都會立即響應進行處理。例如:`cupsd`(打印機的服務)。 ### interval-control 這種工作形態的daemon,是每隔一段時間就主動執行某項工作。間隔時間和工作內容要在該服務的配置文件中自動。 例如:`atd`和`crond` ## 命名規則 服務的名稱被創建后,被掛上Linux使用時,通常在服務的名稱之后都會加一個字母‘d‘(代表daemon)。 ## 服務與端口的對應 系統所有的功能都是由不同的程序來實現。 進程(內存中運行的程序)則是通過觸發程序而產生。 系統提供的服務通過進程來實現。 系統/主機通過端口號(port number)來分辨不同的請求。 查看文件`/etc/services`內容就可以知道當前系統的服務和對應端口號。也可以通過修改該文件中的內容來更改某個服務的端口號。 ~~~ [root@tatahy-lamp selinux]# cat /etc/services | grep 'mysql' mysql 3306/tcp # MySQL mysql 3306/udp # MySQL mysql-cluster 1186/tcp # MySQL Cluster Manager mysql-cluster 1186/udp # MySQL Cluster Manager mysql-cm-agent 1862/tcp # MySQL Cluster Manager Agent mysql-cm-agent 1862/udp # MySQL Cluster Manager Agent mysql-im 2273/tcp # MySQL Instance Manager mysql-im 2273/udp # MySQL Instance Manager mysql-proxy 6446/tcp # MySQL Proxy mysql-proxy 6446/udp # MySQL Proxy ~~~ `協議`:統一整個因特網的端口號對應的服務(進程),讓所有的主機都能夠使用相同的機制來提供服務與請求服務。 有些約定俗成的服務都放置在同一個端口號上。 例如: * 瀏覽器的url欄里的http會讓瀏覽器向www服務器的80端口發送連接請求; * www服務器也會將httpd這個進程激活在80端口。 ## 啟動 提供某個服務的daemon是一個進程,但啟動這個daemon還需要: * 執行文件 * 配置文件 * 執行環境 啟動daemon后,操作系統還會記錄該進程的PID放置在`/var/run`目錄下。 為了一氣呵成完成上述一系列的操作,操作系統提供了執行daemon的啟動腳本(shell script)的方式來完成daemon的啟動。 以CentOS 5.x為例,與daemon有關的文件為: 1. 服務啟動腳本 `/etc/init.d/*` 2. 服務初始化環境配置文件 `/etc/sysconfig/*` 3. 各服務各自的配置文件 `/etc/*` 4. 各服務產生的數據庫 `/var/lib/*` 5. 各服務的程序PID記錄處`/var/run/*` 6. super daemon配置文件 `/etc/xinetd.conf`,`/etc/xinetd.d/*` ### `stand alone daemon`的啟動 示例: ~~~ [root@www~]# service crond restart [root@www~]# /etc/init.d/crond restart #上述2種方法都可以重新啟動crond ~~~ 1. `/etc/init.d/*`啟動 幾乎系統上面所有服務的啟動腳本都在`/etc/init.d/`下面,這里面的腳本會去檢測環境、 查找配置文件、 加載distribution 提供的函數功能、判斷環境是否可以運行此 daemon等。 等到一切都檢測完畢且確定可以運行后,再以 shell script 的 case...esac 語法來啟動、 關閉、 查看此daemon。 例如:運行腳本`/etc/init.d/syslog` ~~~ [root@www ~]# /etc/init.d/syslog 用法: /etc/init.d/syslog {start|stop|status|restart| condrestart) # 什么參數都不加的時候, 系統會告訴你可以用的參數有哪些, 如上所示. 范例一: 查看 syslog 這個 daemon 目前的狀態 [root@www ~]# /etc/init.d/syslog status syslogd (pid 4264) 正在執行... klogd (pid 4267) 正在執行... # 代表 syslog 管理兩個 daemon, 這兩個 daemon 正在運行中. 范例二: 重新讓 syslog 讀取一次配置文件 [root@www ~]# /etc/init.d/syslog restart 正在關閉內核記錄器: [ 確定 ] 正在關閉系統記錄器: [ 確定 ] 正在啟動系統記錄器: [ 確定] 正在啟動內核記錄器: [確定 ] [root@www ~]# /etc/init.d/syslog status syslogd (pid 4793)正在執行... klogd (pid 4796) 正在執行... # 因為重新啟動過, 所以PID 與第一次查看的值就不一樣了. ~~~ 2. `service`啟動 另外,CentOS中提供`service`可以用來啟動`stand alone`類型的服務的腳本。`service`就是一個腳本(路徑:`/sbin/service`),它通過分析`service`后面的參數再到`/etc/init.d/`目錄下取得正確的服務來`start`或`stop`。 ~~~ [root@www~]# service [service name](start|stop|restartl...) [root@www~]# service --status-all ~~~ 參數: `service name`:即是需要啟動的服務名稱,需與 `/etc/init.d/` 對應; `startl...`:即是該服務要進行的工作; `--status-all`:將系統所有的`stand alone`的服務狀態全部列出來。 ### `super daemon`的啟動 因為`super daemon`自己要常駐內存,才能管理后續的其他服務,所以其啟動方式與`stand alone daemon`是一樣的。 但它管理的其他daemon必須要在對應的配置文件(路徑:`/etc/xinetd.d/*`)中設為啟動該daemon才行 ## `systemd`服務 [[參考文檔]]([https://www.linuxidc.com/Linux/2015-07/120833.htm](https://www.linuxidc.com/Linux/2015-07/120833.htm)) 從CentOS7.x開始,CentOS開始使用`systemd`服務來代替`daemon`,原來管理系統啟動和管理系統服務的相關命令全部由`systemctl`命令來代替。 `Systemctl`是一個`systemd`工具,主要負責控制`systemd`系統和服務管理器。它整合了`chkconfig` 與` service`功能于一體。 `Systemd`是一個系統管理守護進程、工具和庫的集合,用于取代`System V`初始進程。`Systemd`的功能是用于集中管理和配置類UNIX系統。 在Linux生態系統中,`Systemd`被部署到了大多數的標準Linux發行版中,只有為數不多的幾個發行版尚未部署。`Systemd`通常是所有其它守護進程的父進程,但并非總是如此。 **1、原來的 service 命令與 systemctl 命令對比** | daemon命令 | systemctl命令 | 說明 | | --- | --- | --- | | service \[服務\] start | systemctl start \[unit type\] | 啟動服務 | | service \[服務\] stop | systemctl stop \[unit type\] | 停止服務 | | service \[服務\] restart | systemctl restart \[unit type\] | 停止服務 | 此外還是二個systemctl參數沒有與service命令參數對應 `status`:參數來查看服務運行情況 `reload`:重新加載服務,加載更新后的配置文件(并不是所有服務都支持這個參數,比如network.service) 應用舉例: ~~~ #啟動網絡服務 systemctl start network.service #停止網絡服務 systemctl stop network.service #重啟網絡服務 systemctl restart network.service #查看網絡服務狀態 systemctl status network.serivce ~~~ 例如在上安裝http ~~~ [root@CentOS7 ~\]# yum -y install httpd 啟動服務(等同于service httpd start) systemctl start httpd.service 停止服務(等同于service httpd stop) systemctl stop httpd.service 重啟服務(等同于service httpd restart) systemctl restart httpd.service 查看服務是否運行(等同于service httpd status) systemctl status httpd.service 開機自啟動服務(等同于chkconfig httpd on) systemctl enable httpd.service 開機時禁用服務(等同于chkconfig httpd on) systemctl disable httpd.service 查看服務是否開機啟動 (等同于chkconfig --list) ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看