Linux命令之systemctl用法詳解
一、systemctl命令簡介
CentOS 5使用SysV init;CentOS 6使用Upstart,CentOS 7使用Systemd管理守護進程。centos7采用 systemd管理,服務(wù)獨立的運行在內(nèi)存中,服務(wù)響應(yīng)速度快,但占用更多內(nèi)存。獨立服務(wù)的服務(wù)啟動腳本都在目錄 /usr/lib/systemd/system里。Systend的新特性:
- 系統(tǒng)引導(dǎo)時實現(xiàn)服務(wù)的并行啟動;
- 按需激活進程;
- 系統(tǒng)實現(xiàn)快照;
- 基于依賴關(guān)系定義服務(wù)的控制邏輯;
systemctl可用于內(nèi)省和控制“systemd”系統(tǒng)和服務(wù)管理器的狀態(tài)。centos7.x系統(tǒng)環(huán)境下我們經(jīng)常使用此命令啟停服務(wù),實際上此命令除了其他獨立服務(wù)還有很多其他用途。
二、systemctl使用示例
1、查看命令幫助
[root@s153 system]# systemctl --help systemctl [OPTIONS…] {COMMAND} …
2、啟動服務(wù)
接下來的操作實例以管理xinetd服務(wù)為例。
[root@s153 system]# systemctl start xinetd
3、查看服務(wù)狀態(tài)
[root@s153 system]# systemctl status xinetd ● xinetd.service - Xinetd A Powerful Replacement For Inetd Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled; vendor preset: enabled) Active: active (running) since 三 2022-07-20 10:29:26 CST; 1min 53s ago Process: 15831 ExecStart=/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid $EXTRAOPTIONS (code=exited, status=0/SUCCESS) Main PID: 15832 (xinetd) CGroup: /system.slice/xinetd.service └─15832 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
4、停止服務(wù)
[root@s153 system]# systemctl stop xinetd
5、查看服務(wù)是否活躍
[root@s153 system]# systemctl is-active xinetd inactive [root@s153 system]# systemctl start xinetd [root@s153 system]# systemctl is-active xinetd active
6、重新加載服務(wù)配置
reload是在不重啟服務(wù)的情況下重新加載配置文件。
[root@s153 system]# systemctl reload xinetd
7、重啟服務(wù)
restart命令實際上是先stop,然后start。
[root@s153 system]# systemctl restart xinetd
8、列出所有可用單元
[root@s153 system]# systemctl list-unit-files UNIT FILE STATE proc-sys-fs-binfmt_misc.automount static dev-hugepages.mount static …
9、列出所有已加載單元
[root@s153 system]# systemctl list-units UNIT LOAD ACTIVE SUB DESCRIPTION proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File Formats File System Automount Point sys-devices-pci0000:00-0000:00:01.1-ata2-host1-target1:0:0-1:0:0:0-block-sr0.device loaded active plugged QEMU_DVD-ROM CentOS_7_x86_64 sys-devices-pci0000:00-0000:00:05.0-virtio1-host2-target2:0:0-2:0:0:0-block-sda-sda1.device loaded active plugged QEMU_HARDDISK 1
10、查看可用systemctl管理的所有服務(wù)
systemctl可用管理單元分很多種,日常工作中我們僅僅用于管理服務(wù),unit的常見類型:
- Service unit: 文件擴展名.service, 用于定義系統(tǒng)服務(wù);
- Target unit: 文件擴展名.target, 用于模擬實現(xiàn)"運行級別";
- Device unit: 文件擴展名.device, 用于定義內(nèi)核識別的設(shè)備;
- Mount unit: 文件擴展名.mount, 用于定義文件系統(tǒng)的掛載點;
- Socket unit: 文件擴展名.socket, 用于標(biāo)識進程間通信用到的socket文件;
- Snapshot unit: 文件擴展名.snapshot, 用于管理系統(tǒng)快照;
- Swap unit: 文件擴展名.swap, 用于標(biāo)識swap設(shè)備;
- Automount unit: 文件擴展名.automount, 用于定義文件系統(tǒng)自動點設(shè)備;
- Path unit: 文件擴展名.path, 用于定義文件系統(tǒng)中的一文件或目錄;
11、注銷服務(wù)
服務(wù)被注銷后該服務(wù)就無法通過systemctl進行啟停管理。
[root@s153 system]# systemctl mask firewalld Created symlink from /etc/systemd/system/firewalld.service to /dev/null. [root@s153 system]# systemctl start firewalld Failed to start firewalld.service: Unit is masked.
12、取消注銷服務(wù)
[root@s153 system]# systemctl unmask firewalld Removed symlink /etc/systemd/system/firewalld.service. [root@s153 system]# systemctl start firewalld
13、設(shè)置服務(wù)開機自啟動
[root@s153 system]# systemctl enable xinetd.service Created symlink from /etc/systemd/system/multi-user.target.wants/xinetd.service to /usr/lib/systemd/system/xinetd.service.
14、取消服務(wù)開機自啟動
[root@s153 system]# systemctl disable xinetd.service Removed symlink /etc/systemd/system/multi-user.target.wants/xinetd.service.
15、查看機器信息
[root@s153 system]# systemctl list-machines NAME STATE FAILED JOBS s153 (host) running 0 0 1 machines listed.
16、查看系統(tǒng)環(huán)境變量
[root@s153 system]# systemctl show-environment LANG=zh_CN.UTF-8 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
17、重新加載unit文件
如果手動修改了unit文件,可以使用此命令重新加載。
[root@s153 system]# systemctl daemon-reload
18、創(chuàng)建一個系統(tǒng)快照
[root@s153 system]# systemctl snapshot wuhs wuhs.snapshot
19、刪除指定快照
[root@s153 system]# systemctl delete wuhs
20、查看服務(wù)是否開機自啟動
[root@s153 system]# systemctl is-enabled xinetd.service enabled
21、殺死服務(wù)
[root@s153 system]# systemctl kill xinetd [root@s153 system]# systemctl is-failed xinetd inactive
22、進入救援模式
[root@s153 system]# systemctl rescue Broadcast message from root@s153 on pts/1 (三 2022-07-20 13:08:30 CST): The system is going down to rescue mode NOW! #執(zhí)行完命令后系統(tǒng)就進入了救援模式 #救援模式下切換到默認模式 [root@s153 ~]# systemctl default
23、關(guān)閉系統(tǒng)
[root@s153 ~]# systemctl poweroff
24、重啟機器
[root@s153 ~]# systemctl reboot
25、系統(tǒng)睡眠
suspend暫停模式,類似window環(huán)境的睡眠模式,會將系統(tǒng)的狀態(tài)數(shù)據(jù)保存到內(nèi)存中,然后關(guān)閉掉大部分的系統(tǒng)硬件,當(dāng)然,并沒有實際關(guān)機。當(dāng)用戶按下喚醒機器的按鈕,系統(tǒng)數(shù)據(jù)會重內(nèi)存中回復(fù),然后重新驅(qū)動被大部分關(guān)閉的硬件,就開始正常運作!喚醒的速度較快。
[root@s153 ~]# systemctl suspend
26、查看系統(tǒng)啟動模式
[root@s153 boot]# systemctl get-default multi-user.target
27、設(shè)置系統(tǒng)為圖形界面啟動
[root@s153 system]# systemctl set-default graphical.target Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.
三、systemctl參數(shù)說明
1、使用語法
用法:systemctl [OPTIONS…] {COMMAND} …
2 、參數(shù)說明
參數(shù) | 參數(shù)說明 |
---|---|
start | 立刻啟動后面接的unit |
stop | 立刻關(guān)閉后面接的unit |
restart | 立刻關(guān)閉后啟動后面接的unit,亦即執(zhí)行stop再start的意思 |
reload | 不關(guān)閉后面接的unit的情況下,重載配置文件,讓設(shè)定生效 |
enable | 設(shè)定下次開機時,后面接的unit會被啟動 |
disable | 設(shè)定下次開機時,后面接的unit 不會被啟動 |
status | 目前后面接的這個unit 的狀態(tài),會列出是否正在執(zhí)行、是否開機啟動等信息。 |
is-active | 目前有沒有正在運行中 |
is-enable | 開機時有沒有預(yù)設(shè)要啟用這個unit |
kill | 不要被kill這個名字嚇著了,它其實是向運行unit的進程發(fā)送信號 |
show | 列出unit的配置。 |
mask | 注銷unit,注銷后你就無法啟動這個unit了 |
unmask | 取消對unit的注銷 |
list-units | 依據(jù)unit列出目前有啟動的unit。若加上–all才會列出沒啟動的。(等價于無參數(shù)) |
list-unit-files | 列出所有以安裝unit以及他們的開機啟動狀態(tài)(enabled、disabled、static、mask)。 |
–type=TYPE | 就是unit type,主要有service,socket,target等 |
get-default | 取得目前的 target |
set-default | 設(shè)定后面接的 target 成為默認的操作模式 |
isolate | 切換到后面接的模式 |
3、unit file結(jié)構(gòu)
文件通常由三部分組成:
- [Unit]: 定義與Unit類型無關(guān)的通用選項;用于提供unit的描述信息,unit行為及依賴關(guān)系等。
- [Service]:與特定類型相關(guān)的專用選項;此處為Service類型。
- [Install]:定義由"systemctl enable"及"systemctl disable"命令在實現(xiàn)服務(wù)啟用或禁用時用到的一些選項。
4、Unit段的常用選項
- Description:描述信息,意義性描述;
- After:定義unit的啟動次序;表示當(dāng)前unit應(yīng)晚于哪些unit啟動;其功能與Before相反;
- Requies:依賴到其它的units;強依賴,被依賴的units無法激活時,當(dāng)前的unit即無法激活;
- Wants:依賴到其它的units;弱依賴;
- Confilcts:定義units 的沖突關(guān)系;
5、Service段的常用選項
- Type:用于定義影響ExecStart及相關(guān)參數(shù)的功能的unit進程類型;
類型有:simple、forking、oneshot、dbus、notify、idle。 - EnvironmentFile:環(huán)境配置文件;
- ExecStart:指明啟動unit要運行的命令或腳本;ExecStart, ExecStartPost
- ExecStop:指明停止unit要運行的命令或腳本;
- Restart:
6、Install段的常用配置:
- Alias:
- RequiredBy:被哪些unit所依賴;
- WantBy:被哪些unit所依賴;
7、Unit文件樣例
[root@s153 system]# cat chronyd.service [Unit] Description=NTP client/server Documentation=man:chronyd(8) man:chrony.conf(5) After=ntpdate.service sntp.service ntpd.service Conflicts=ntpd.service systemd-timesyncd.service ConditionCapability=CAP_SYS_TIME [Service] Type=forking PIDFile=/var/run/chronyd.pid EnvironmentFile=-/etc/sysconfig/chronyd ExecStart=/usr/sbin/chronyd $OPTIONS ExecStartPost=/usr/libexec/chrony-helper update-daemon PrivateTmp=yes ProtectHome=yes ProtectSystem=full [Install] WantedBy=multi-user.target
以上就是Linux命令之systemctl用法詳解的詳細內(nèi)容,更多關(guān)于Linux systemctl命令的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Shell eval通過變量獲取環(huán)境變量的方法實現(xiàn)
這篇文章主要介紹了Shell eval通過變量獲取環(huán)境變量的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Linux中文件權(quán)限目錄權(quán)限的意義及權(quán)限對文件目錄的意義
本文給大家介紹Linux中文件目錄權(quán)限的意義及Linux的權(quán)限對于文件與目錄的意義,涉及到linux 文件、目錄、權(quán)限相關(guān)知識,對本文感興趣的朋友一起學(xué)習(xí)吧2016-01-01用shell腳本實現(xiàn)自動切換內(nèi)網(wǎng)和外網(wǎng)實現(xiàn)高可用
因為公司的服務(wù)器這段時間內(nèi)網(wǎng)網(wǎng)卡老是出現(xiàn)問題,然后就導(dǎo)致了網(wǎng)站的各種問題,因為我們的數(shù)據(jù)庫鏈接,redis還有sphinx鏈接都是走的內(nèi)網(wǎng),,所以就寫了這個腳本,在線上也跑了一段時間了,,也沒出過什么問題2013-06-06linux shell命令快捷獲得系統(tǒng)幫助(一)[man-pages定義規(guī)范]
linux命令幫助,一般有2種,命令自身代碼里面帶有使用幫助說明,這種一般很精簡,太長了,程序自身的大小以及日常維護不方便。還有一種,就是帶有幫助文件,類似windows的chm格式文件。下面我說下這2種怎么樣查閱2015-10-10