1.systemdmysql
CentOS 7 使用systemd替換了SysV。Systemd目的是要取代Unix時代以來一直在使用的init系統,兼容SysV和LSB的啓動腳本,並且夠在進程啓動過程當中更有效地引導加載服務。linux
systemd的特性有:sql
ps:使用 systemctl 控制單元時,一般須要使用單元文件的全名,包括擴展名(例如 sshd.service)。可是有些單元能夠在systemctl中使用簡寫方式。)centos
支持並行化任務less
同時採用socket式與D-Bus總線式激活服務;ssh
按需啓動守護進程(daemon);socket
利用 Linux 的 cgroups 監視進程;ui
支持快照和系統恢復;this
維護掛載點和自動掛載點;centos7
各服務間基於依賴關係進行精密控制。
1.啓動單元:存放在 /usr/lib/systemd/system/ 和 /etc/systemd/system/ 目錄(後者優先級更高)。
2.在systemd中全部的服務功能都叫被稱爲一個單元。
eg:
系統服務(.service):用戶本身的應用服務也存放在裏面,如mysql
掛載點(.mount)
sockets(.sockets)
系統設備、交換分區/文件、啓動目標(target)、文件系統路徑、計時器
若是無擴展名,systemctl 默認把擴展名看成 .service。例如 netcfg 和 netcfg.service 是等價的。
掛載點會自動轉化爲相應的 .mount 單元。例如 /home 等價於 home.mount。
設備會自動轉化爲相應的 .device 單元,因此 /dev/sda2 等價於 dev-sda2.device。
a)命令:
1:開機啓動單元 $:systemctl (和$:systemctl list-units) 2.失敗啓動 $:systemctl --failed 3.激活單元 $:systemctl start <單元> 4.當即中止 $:systemctl stop <單元> 5.重啓單元 $:systemctl reload <單元> 6.運行狀態 $:systemctl status <單元> ############自動啓動########## 7.是否爲自動啓動 $:systemctl is-enabled <單元> 8.設置爲自動啓動 $:systemctl enable <單元> 9.去掉開機啓動 $:systemctl disable <單元> ###############重啓systemctl######## $:systemctl daemon-reload
b)系統管理
1.重啓 $:systemctl reboot 2.退出並關閉電影 $:systemctl poweroff 3.待機 $:systemctl suspend 4.休眠 $:systemctl hibernate 5.混合休眠模式(同時休眠到硬盤並待機) $:systemctl hybrid-sleep
c)本身編寫service
啓動方式
編寫自定義的service文件時,能夠選擇幾種不一樣的服務啓動方式。啓動方式可經過配置文件 [Service] 段中的 Type= 參數進行設置。具體的參數說明請參閱 man systemd.service 。
Type=simple(默認值):systemd認爲該服務將當即啓動。服務進程不會fork。若是該服務要啓動其餘服務,不要使用此類型啓動,除非該服務是socket激活型。
Type=forking:systemd認爲當該服務進程fork,且父進程退出後服務啓動。對於常規的守護進程(daemon),除非你肯定此啓動方式沒法知足需求,使用此類型啓動便可。使用此啓動類型應同時指定 PIDFile=,以便systemd可以跟蹤服務的主進程。
Type=oneshot:這一選項適用於只執行一項任務、隨後當即退出的服務。可能須要同時設置 RemainAfterExit=yes 使得 systemd 在服務進程退出以後仍然認爲服務處於激活狀態。
Type=notify:與 Type=simple 相同,但約定服務會在就緒後向 systemd 發送一個信號。這一通知的實現由 libsystemd-daemon.so 提供。
Type=dbus:若以此方式啓動,當指定的 BusName 出如今DBus系統總線上時,systemd認爲服務就緒。
(
A unit configuration file whose name ends in .service encodes information about a process
controlled and supervised by systemd.
一個單元配置文件,名字以服務名字開始,以.service結束。裏面保存了一個能夠被systemd控制的進程。
This man page lists the configuration options specific to this unit type. See systemd.unit(5)
for the common options of all unit configuration files. The common configuration items are
configured in the generic "[Unit]" and "[Install]" sections. The service specific configuration
options are configured in the "[Service]" section.
這篇文章列舉了單元配置選項。查看system.unit(5)能夠查看單元配置文件的公共選項。配置文件的公共選項
包括了[unit]和[install]部分。自定義service定義配置選項是在[service]
Additional options are listed in systemd.exec(5), which define the execution environment the
commands are executed in, and in systemd.kill(5), which define the way the processes of the
service are terminated, and in systemd.resource-control(5), which configure resource control
settings for the processes of the service.
增長選項能夠是使用systemd.exec(5)列出來,若是定義一個運行環境命令。使用systemd.kill(5)來關閉一個
服務
Unless DefaultDependencies= is set to false, service units will implicitly have dependencies of
type Requires= and After= on basic.target as well as dependencies of type Conflicts= and
Before= on shutdown.target. These ensure that normal service units pull in basic system
initialization, and are terminated cleanly prior to system shutdown. Only services involved
with early boot or late system shutdown should disable this option.
除非默認依賴設置爲false,服務但與將設置爲 Requires= and After= basic.target ,依賴類型 Conflicts=
and Before= shutdown.target。這些普通服務單元將在系統初始化的initialization後啓動,在系統關閉前
關閉。當服務在系統啓動前啓動、或者在系統關閉後關閉,就須要關閉這個選項。
If a service is requested under a certain name but no unit configuration file is found, systemd
looks for a SysV init script by the same name (with the .service suffix removed) and
dynamically creates a service unit from that script. This is useful for compatibility with
SysV. Note that this compatibility is quite comprehensive but not 100%. For details about the
incompatibilities see the Incompatibilities with SysV[1] document.
若是一個服務有一個確認的名字,可是單元配置文件沒有發現被找到,sytemd將回去查詢SysV的相同名字
的初始化腳本(SysV的啓動文件在 /etc/rc.d/裏面),
而後根據腳本動態建立一個.service 腳本(並不會直接建立一個.service)。這是很好的兼容了SysV,
可是須要注意的是,這並不能100%兼容SysV.詳細的請查看SysV的文檔。
)
目標(target)
啓動級別(runlevel)是一箇舊的概念。如今,systemd 引入了一個和啓動級別功能類似又不一樣的概念——目標(target)。不像數字表示的啓動級別,每一個目標都有名字和獨特的功能,而且能同時啓用多個。一些目標繼承其餘目標的服務,並啓動新服務。systemd 提供了一些模仿 sysvinit 啓動級別的目標,仍能夠使用舊的 telinit 啓動級別 命令切換。
mysql的linux安裝
一、centos7直接安裝默認的mariadb