您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Linux系統服務systemctl怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Linux系統服務systemctl怎么用”這篇文章吧。
服務:常駐系統內存中的進程且可以提供一些系統和網絡功能;現在最新的Linux系統都統一使用systemctl進行服務的管理。
1、運行級別的分類 runlevel
> 運行級別0:系統停機狀態
> 運行級別1:單用戶工作狀態,root權限,用于系統維護,禁止遠程登陸
> 運行級別2:多用戶狀態(沒有NFS)
> 運行級別3:完全的多用戶狀態(有NFS)
> 運行級別4:系統未使用,保留
> 運行級別5:X11控制臺
> 運行級別6:系統正常關閉并重啟
2、管理服務 systemctl (root權限)
> systemctl [opt] xxx.service
> status 查看當前服務狀態
> start 啟動服務
> stop 關閉服務
> restart 重啟服務
> enable 設置開機啟動
> disable 設置開機不啟動
> reload 后面不接具體服務名,重新加載配置文件
> mask 注銷服務
> unmask 取消注銷
3.一些常用命令 systemctl
查看當前已經啟動的服務 systemctl list-units
查看所有服務 systemctl list-unit-files
查看服務有哪些依賴 systemctl list-dependencies xx.service
查看服務有哪些依賴(反向) systemctl list-dependencies --reverse xx.service
4.system 服務相關的一些目錄( Centos 環境,Debian 類的環境可能會有稍許不同)
/usr/lib/systemd/system/ 系統安裝的軟件默認啟動腳本目錄
/etc/systemd/system/ 用戶根據自己需要建立的啟動腳本目錄
/etc/sysconfig/ 服務初始化選項目錄
/var/lib/ 服務運行時產生的數據存儲目錄
/etc/xxx/ 各服務配置目錄
5.結合一個例子來具體講解,一臺機開啟兩個ssh服務
我們最常使用的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/ 下也是沒有問題的,看個人選擇了
6、我們再來舉個例子,做一個自己的服務
1.在 /root/bin/ 下創建一個shell腳本 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/ 目錄下創建了一個日志文件
注意,我們這個是最簡單的服務,執行幾個命令而已,所以沒有配置文件,也不會常駐內存,運行一次就結束
以上是“Linux系統服務systemctl怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。