• [CentOS7] systemd


    声明:本文主要总结自:鸟哥的Linux私房菜-第十七章、認識系統服務 (daemons),如有侵权,请通知博主

    查看当前系统设定的服务启动脚本的类型:ls /usr/lib/systemd/system | cut -d '.' -f 2 | sort | uniq

    1. /usr/lib/systemd/system  ==> 每个服务最主要的启动脚本设定

    2. /run/systemd/system  ==> 系统过程中所产生的服务脚本

    3. /etc/systemd/system  ==> 该目录下都是soft link文件,软链接到/usr/lib/systemd/system目录下的启动脚本,因此该目录决定了开机启动后开启哪些服务

    优先级顺序:3 > 2 > 1

    副檔名 主要服務功能
    .service 一般服務類型 (service unit):主要是系統服務,包括伺服器本身所需要的本機服務以及網路服務都是!比較經常被使用到的服務大多是這種類型! 所以,這也是最常見的類型了!
    .socket

    內部程序資料交換的插槽服務 (socket unit):主要是 IPC (Inter-process communication) 的傳輸訊息插槽檔 (socket file) 功能。 這種類型的服務通常在監控訊息傳遞的插槽檔,當有透過此插槽檔傳遞訊息來說要連結服務時,就依據當時的狀態將該用戶的要求傳送到對應的 daemon, 若 daemon 尚未啟動,則啟動該 daemon 後再傳送用戶的要求。

    使用 socket 類型的服務一般是比較不會被用到的服務,因此在開機時通常會稍微延遲啟動的時間 (因為比較沒有這麼常用嘛!)。一般用於本機服務比較多,例如我們的圖形界面很多的軟體都是透過 socket 來進行本機程序資料交換的行為。 (這與早期的 xinetd 這個 super daemon 有部份的相似喔!)

    .target 執行環境類型 (target unit):其實是一群 unit 的集合,例如上面表格中談到的 multi-user.target 其實就是一堆服務的集合~也就是說, 選擇執行 multi-user.target 就是執行一堆其他 .service 或/及 .socket 之類的服務就是了!
    .mount
    .automount
    檔案系統掛載相關的服務 (automount unit / mount unit):例如來自網路的自動掛載、NFS 檔案系統掛載等與檔案系統相關性較高的程序管理。
    .path 偵測特定檔案或目錄類型 (path unit):某些服務需要偵測某些特定的目錄來提供佇列服務,例如最常見的列印服務,就是透過偵測列印佇列目錄來啟動列印功能! 這時就得要 .path 的服務類型支援了!
    .timer 循環執行的服務 (timer unit):這個東西有點類似 anacrontab 喔!不過是由 systemd 主動提供的,比 anacrontab 更加有彈性!

    (-- 源自鸟哥的Linux私房菜: systemd使用unit分类)

    直接列出所有unit与其状态和描述

    服务是有相依赖性的,比如cups.service负责打印机服务,但若直接systemctl stop cups.service,虽然它确实停止了,但是仍能被cups.path和cups.socket唤醒,例子如下:

    给予了提示,若停止cups.service,该service仍能被cups.path、cups.socket激活

    可以通过systemctl list-units xxx --all 的方式来显示出所有与之相关的unit,加上--all参数后会显示所有的unit包含unloaded的

     systemctl list-units --type={service|socket|path|...} -all 列出所有unit类型为{service|socket|path|...}的服务详细状态

    谨记:

    /usr/lib/systemd/system/: 使用centos官方提供的软件安装后,预设的启动脚本设定文件都放在这里

    /run/systemd/system/: 系统执行过程中所产生的服务脚本,优先级比/usr/lib/systemd/sytem/高

    /etc/systemd/system/: 管理员依据主机系统的需求所建立的执行脚本,优先级比/run/systemd/system/高

    /etc/sysconfig/*: 几乎所有的服务都会将初始化的一些选项设定写入到这个目录下

    /var/lib/: 一些会产生资料的服务都会将他的资料写入到/var/lib/目录下

    /run/: 放置了很多daemon的暂存文件,包括lock file以及PID file等等

  • 相关阅读:
    Go panic+defer+recover理解加使用
    golang atomic包的使用
    Mongo 锁的理解
    AudioManager(录音)
    SAXpraseHelper
    Density
    CustomDialog
    CustomScrollVeiw(双向滑动)
    tf的concat问题
    tensorflow的gpu版本错误
  • 原文地址:https://www.cnblogs.com/brianyi/p/7997874.html
Copyright © 2020-2023  润新知