systemd程式管理工具實戰教程

大雄45發表於2021-04-05
導讀 systemd是目前 上主要的系統守護程式管理工具,由於init一方面對於程式的管理是序列化的,容易出現阻塞情況,另一方面init也僅僅是執行啟動 ,並不能對服務本身進行更多的管理。
 1. systemd介紹

systemd是目前 系統上主要的系統守護程式管理工具,由於init一方面對於程式的管理是序列化的,容易出現阻塞情況,另一方面init也僅僅是執行啟動 ,並不能對服務本身進行更多的管理。所以從  7開始也由systemd取代了init作為預設的系統程式管理工具。

systemd所管理的所有系統資源都稱作Unit,透過systemd 集可以方便的對這些Unit進行管理。比如systemctl、hostnamectl、timedatectl、localctl等 ,這些命令雖然改寫了init時代使用者的命令使用習慣(不再使用chkconfig、service等命令),但確實也提供了很大的便捷性。

2. systemd特點:

1.最新系統都採用systemd管理(RedHat7,CentOS7,Ubuntu15...)

2.CentOS7 支援開機並行啟動服務,顯著提高開機啟動效率

3.CentOS7關機只關閉正在執行的服務,而CentOS6,全部都關閉一次。

4.CentOS7服務的啟動與停止不再使用指令碼進行管理,也就是/etc/init.d下不在有指令碼。

5.CentOS7使用systemd解決原有模式缺陷,比如原有service不會關閉程式產生的子程式。

3. systemd語法:
systemctl [command]      [unit](配置的應用名稱)
command可選項
· start:啟動指定的unit          systemctl start nginx
· stop:關閉指定的unit           systemctl stop nginx
· restart:重啟指定unit          systemctl restart nginx
· reload:過載指定unit           systemctl reload nginx
· enable:系統開機時自動啟動指定unit,前提是配置檔案中有相關配置 systemctl enable nginx
· disable:開機時不自動執行指定unit   systemctl disable nginx
· status:檢視指定unit當前執行狀態 systemctl status nginx
4. systemd配置檔案說明:
  1. 每一個Unit都需要有一個配置檔案用於告知 systemd對於服務的管理方式
  2. 配置檔案存放於 /usr/lib/systemd/system/,設定開機啟動後會在 /etc/systemd/system目錄建立軟連結檔案
  3. 每個Unit的配置檔案配置預設字尾名為.service
  4. /usr/lib/systemd/system/目錄中分為system和user兩個目錄,一般將開機不登陸就能執行的程式存在系統服務裡,也就是 /usr/lib/systemd/system
  5. 配置檔案使用方括號分成了多個部分,並且區分大小寫
5. systemd相關檔案:

systemd程式管理工具實戰教程systemd程式管理工具實戰教程

實戰 原始碼編譯安裝nginx 實現systemd管理控制

安裝nginx編譯環境

yum  -y install gcc gcc-c++    openssl-devel pcre-devel gd-devel  iproute net-tools telnet wget curl
wget 
tar zxf nginx-1.15.5.tar.gz &&
cd nginx-1.15.5
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_stub_status_module
make -j 4 && make install

通用方式啟動nginx

/usr/local/nginx/sbin/nginx  #啟動
/usr/local/nginx/sbin/nginx  -s reload  #重啟
/usr/local/nginx/sbin/nginx -s   quit   #關閉nginx

systemd 管理控制啟動模式

vim      /usr/lib/systemd/system/nginx.service
[Unit]Description=nginxAfter=network.target
[Service]Type=forkingExecStart=/usr/local/nginx/sbin/nginxExecReload=/usr/local/nginx/sbin/nginx -s reloadExecStop=/usr/local/nginx/sbin/nginx -s quitPrivateTmp=true[Install]WantedBy=multi-user.target

引數詳解

systemctl restart nginx
systemctl enable  nginx
systemctl stop  nginx

如圖所示實現了systemd 管理控制nginx服務

原文來自:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2766555/,如需轉載,請註明出處,否則將追究法律責任。

相關文章