Linux 中的 Service

參考:html

1、概述

1.1 service 和 daemon

達成某個 service 是須要一支 daemon 在運行的。node

沒有這支 daemon 就不會有 service.mysql

daemon分爲兩種:linux

  • stand_alone
    獨立啓動,自行啓動不透過其餘機制,daemon 啓動並加載到內存後就一直佔用內存與系統資源。

最大的優勢就是:由於是一直存在內存內持續的提供服務,所以對於發生客戶端的要求時,stand alone 的 daemon 響應速度較快。git

常見的 stand alone daemon 有 WWW 的 daemon (httpd)、FTP 的 daemon (vsftpd) 等等。github

  • super daemon
    啓動方式則是藉由一個統一的 daemon 來負責喚起服務!

它的好處是:自行啓動服務不用的時候自行關閉服務,節約內存資源,telnet 就是這樣的sql

1.2 service 命令

service命令,顧名思義,就是用於管理 Linux 操做系統中服務的命令。shell

注意:數據庫

  1. 聲明:這個命令不是在全部的linux發行版本中都有。主要是在redhat、fedora、mandriva和centos中。
  2. 此命令位於/sbin目錄下,用file命令查看此命令會發現它是一個腳本命令。
  3. 分析腳本可知此命令的做用是去/etc/init.d目錄下尋找相應的服務,進行開啓和關閉等操做。
  4. 開啓httpd服務器:service httpd start
    start能夠換成restart表示從新啓動,stop表示關閉,reload表示從新載入配置。
  5. 關閉mysql服務器:service mysqld stop
  6. 強烈建議你們將service命令替換爲/etc/init.d/mysqld stop (由於有一些linux的版本不支持service)

Usage: service < option > | --status-all | [ service_name [ command | --full-restart ] ]centos

例如:

  • 示例一 網絡重啓
當修改了主機名、ip地址等信息時,常常須要把網絡重啓使之生效。
[root@node34 root]# service network 
用法:/etc/init.d/network {start|stop|restart|reload|status} 
[root@node34 root]# service network status 
配置設備: 
lo eth0 
當前的活躍設備: 
lo eth0 
[root@node34 root]# service network restart 
正在關閉接口 eth0:                                        [  肯定  ] 
關閉環回接口:                                             [  肯定  ] 
設置網絡參數:                                             [  肯定  ] 
彈出環回接口:                                             [  肯定  ] 
彈出界面 eth0:                                            [  肯定  ]
  • 示例二 重啓 MySQL
[root@node34 root]# service mysql
mysql: unrecognized service
[root@node34 root]# service mysqld
用法:/etc/init.d/mysqld {start|stop|status|condrestart|restart}
[root@node34 root]# service mysqld status
mysqld (pid 1638) 正在運行...
[root@node34 root]# service mysqld restart
中止 MySQL:                                               [  肯定  ]
啓動 MySQL:                                               [  肯定  ]

https://www.bbsmax.com/A/GBJrV18BJ0/

2、使用到的文件

/etc/init.d/* :啓動腳本放置處.咱們的 CentOS 實際上放置在 /etc/rc.d/init.d/ 啦! 不過仍是有配置連結檔到 /etc/init.d/ 的!

/etc/sysconfig/* :各服務的初始化環境配置文件

/etc/* :各服務各自的配置文件

/var/lib/* :各服務產生的數據庫

`/var/run/*`` :各服務的程序之 PID 記錄處

3、linux 中 service *** start 與直接運行 /usr/bin/*** 的區別

在linux想要運行啓動一個服務有兩種方法:

1,運行/etc/init.d/目錄下的shell腳本,還能夠有快捷方式,service *** start/ stop/restart /status,

2,直接運行/usr/bin目錄下的服務文件;

第一種方法啓動的程序能夠經過service命令來管理,好比說查看狀態 service --status-all

查看/etc/init.d目錄,發現下面都是shell腳本,腳本里面運行的程序最終仍是指向了/usr/bin下面的程序,只不過在shell腳本中可能直接對程序的一些運行參數繼續進行了設置;

第二種方法,直接運行/usr/bin/****,若是運行時有配置文件的話,須要加上 --config *****,用這種方法啓動程序後,不能用service命令查看狀態。

此文在個人 Github Pages 上同步發佈,地址爲:Linux 中的 Service

相關文章
相關標籤/搜索