Linux中如何使用systemctl進行服務的管理?
服務:常駐系統記憶體中的程式且可以提供一些系統和網路功能;現在最新的 都統一使用systemctl進行服務的管理。 |
- 執行級別0:系統停機狀態
- 執行級別1:單使用者工作狀態,root許可權,用於系統維護,禁止遠端登陸
- 執行級別2:多使用者狀態(沒有NFS)
- 執行級別3:完全的多使用者狀態(有NFS)
- 執行級別4:系統未使用,保留
- 執行級別5:X11控制檯
- 執行級別6:系統正常關閉並重啟
- systemctl [opt] xxx.service
- status 檢視當前服務狀態
- start 啟動服務
- stop 關閉服務
- restart 重啟服務
- enable 設定開機啟動
- disable 設定開機不啟動
- reload 後面不接具體服務名,重新載入配置檔案
- mask 登出服務
- unmask 取消登出
- 檢視當前已經啟動的服務 systemctl list-units
- 檢視所有服務 systemctl list-unit-files
- 檢視服務有哪些依賴 systemctl list-dependencies xx.service
- 檢視服務有哪些依賴(反向) systemctl list-dependencies --reverse xx.service
- /usr/lib/systemd/system/ 系統安裝的軟體預設啟動 目錄
- /etc/systemd/system/ 使用者根據自己需要建立的啟動 目錄
- /etc/sysconfig/ 服務初始化選專案錄
- /var/lib/ 服務執行時產生的資料儲存目錄
- /etc/xxx/ 各服務配置目錄
我們最常使用的ssh服務,系統預設ssh服務22埠,我現在想再開一個ssh服務,埠8888
1.系統服務啟動指令碼 /usr/lib/systemd/system/sshd.service,將其複製到 /etc/systemd/system/ 下,並改名為 sshd2.service,檔案內容如下:
[Unit] Description=OpenSSH server daemon Documentation=man:sshd(8) man:sshd_config(5) After=network.target sshd-keygen.service Wants=sshd-keygen.service [Service] Type=notify EnvironmentFile=/etc/sysconfig/sshd ExecStart=/usr/sbin/sshd -D $OPTIONS ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
因為要重啟一個新的服務,所以要修改一下ExecStart這一行,讀取新的配置檔案 sshd2_config,改為
ExecStart=/usr/sbin/sshd -D $OPTIONS -f /etc/ssh/sshd2_config
2.到 /etc/ssh/ 下,將 sshd_config 複製到 sshd2_config,並修改埠那一行
Port 8888
3.執行 systemctl reload 重新載入一下配置
4.執行命令 systemctl status sshd2.service 檢視狀態
5 執行命令 systemctl start sshd2.service 開啟服務
6.執行命令 systemctl enable sshd2.service 設定開機啟動
7.在另一臺機器上登入 ssh fancy@ip -p8888 就可以登入了
- 注意1,防火牆要開啟8888埠
- 注意2,官方建議使用者自己新建的服務指令碼最好存放在 /etc/systemd/system/ 目錄下,實際情況下存放在系統服務目錄 /usr/lib/systemd/system/ 下也是沒有問題的,看個人選擇了
1.在 /root/bin/ 下建立一個 指令碼 fancy_test.sh,並修改其許可權,chmod u+x fancy_test.sh,內容如下
#!/bin/bash logdate=$(date +%s) logdir="/root/log/" logname=fancy.${logdate}.log #echo $logname touch ${logdir}${logname}
意思是,執行該服務時,在 /root/log/ 目錄下建立一個日誌檔案
2.在 /etc/systemd/system/ 下建立啟動指令碼 fancy_test.service,輸入一下內容
[Unit] Description=fancy_test server daemon [Service] Type=simple ExecStart=/root/bin/fancy_test.sh [Install] WantedBy=multi-user.target
3.執行命令 systemctl reload
4.執行命令 systemctl start fancy_test.service
5.此時你會看到在 /root/log/ 目錄下建立了一個日誌檔案
- 注意,我們這個是最簡單的服務,執行幾個命令而已,所以沒有配置檔案,也不會常駐記憶體,執行一次就結束
原文地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2735732/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用systemctl進行服務管理
- linux系統服務(systemctl)的使用Linux
- 使用Systemctl命令來管理系統服務
- 在Linux中,如何進行網路服務的監控?Linux
- 在Linux中,如何在Linux中使用LXD進行容器管理?Linux
- 如何使用 apt 進行 Linux 包管理APTLinux
- 在Linux中,如何管理服務的自啟動?Linux
- 在Linux中,如何使用ELK進行日誌管理和分析?Linux
- 在Linux中,如何進行叢集管理?Linux
- 在 Linux 系統中如何管理 systemd 服務Linux
- systemctl 命令在 Linux 中啟動、停止和重新啟動服務Linux
- CentOS7中使用systemctl列出啟動失敗的服務CentOS
- 如何在Docker容器中的Linux系統(Ubuntu + Centos Linux)裡面使用systemctlDockerLinuxUbuntuCentOS
- linux中透過systemctl建立服務並實現開機啟動Linux
- 在Linux中,如何配置和管理系統服務?Linux
- 在Linux中,如何在Linux中進行系統映象管理?Linux
- 在Linux中,如何在Linux中進行資源配額管理?Linux
- 『學了就忘』Linux服務管理 — 75、Linux系統中的服務Linux
- Linux服務管理Linux
- SpringCloud進行nacos的服務註冊和服務管理案例SpringGCCloud
- 如何有效進行任務管理?
- Systemctl幾個操作服務命令
- 如何管理服務業務中的專案收入?
- 在Linux中,如何在Linux中進行配置管理和自動化部署?Linux
- 在Linux中,如何進行系統更新和補丁管理?Linux
- 在Linux中,如何使用shell指令碼判斷某個服務是否正在執行?Linux指令碼
- SpringCloud系列使用Eureka進行服務治理SpringGCCloud
- 換ip服務如何進行挑選
- 在Linux中,如何在Linux中使用Ansible進行自動化部署?Linux
- 如何在 Linux 中查詢服務的埠號Linux
- 如何進行Linux CPU中的Kernel space分析Linux
- SpringCloud系列之使用Feign進行服務呼叫SpringGCCloud
- 在Linux中,如何使用VMware和VirtualBox進行虛擬化?Linux
- 在Linux中,如何進行使用者行為監控?Linux
- 『學了就忘』Linux服務管理 — 76、RPM包安裝的服務管理Linux
- 使用RSocket進行服務通訊的反應性服務簡介 - Rafał Kowalski
- 如何使用linux的伺服器需要進行的配置Linux伺服器
- 如何使用lerna進行多包(package)管理Package