1. 為什麼centos7的service命令無法啟動服務
CentOS 7.0中一個最主要的改變,就是切換到了systemd。它用於替代紅帽企業版linux前任版本中的SysV和Upstart,對系統和服務進行管理。systemd兼容SysV和Linux標准組的啟動腳本。
Systemd是一個Linux操作系統下的系統和服務管理器。它被設計成向後兼容SysV啟動腳本,並提供了大量的特性,如開機時平行啟動系統服務,按需啟動守護進程,支持系統狀態快照,或者基於依賴的服務控制邏輯。
先前的使用SysV初始化或Upstart的紅帽企業版Linux版本中,使用位於/etc/rc.d/init.d/目錄中的bash初始化腳本進行管理。而在RHEL 7/CentOS 7中,這些啟動腳本被服務單元取代了。服務單元以.service文件擴展結束,提供了與初始化腳本同樣的用途。要查看、啟動、停止、重啟、啟用或者禁用系統服務,你要使用systemctl來代替舊的service命令。
註:為了向後兼容,舊的service命令在CentOS 7中仍然可用,它會重定向所有命令到新的systemctl工具。
使用systemctl來啟動/停止/重啟服務
要啟動一個服務,你需要使用如下命令:
# systemctl start httpd.service
這會啟動httpd服務,就我們而言,Apache HTTP伺服器。
要停掉它,需要以root身份使用該命令:
# systemctl stop httpd.service
要重啟,你可以使用restart選項,如果服務在運行中,它將重啟服務;如果服務不在運行中,它將會啟動。你也可以使用try-start選項,它只會在服務已經在運行中的時候重啟服務。同時,reload選項你也可以有,它會重新載入配置文件。
# systemctl restart httpd.service
# systemctl try-restart httpd.service
# systemctl reload httpd.service
我們例子中的命令看起來會像下面這樣:
檢查服務狀態
要檢查服務狀態,你可以使用status選項,看這里:
# systemctl status httpd.service
輸出結果就像這樣:
它會告訴你運行中的服務的方方面面。
使用啟用/禁用服務來控制開機啟動
你也可以使用enable/disable選項來控制一個服務是否開機啟動,命令如下:
# systemctl enable httpd.service
# systemctl disable httpd.service
2. centos7 kmp.service啟動失敗的解決方法
加入到開機啟動,可以使用下面命令來加到開機啟動列表,
systemctl enable xxx.service
通過下面命令可以查看有哪些是開機啟動的服務,如果太多一屏顯示不完,還會一部分一部分顯示。
systemctl list-units --type=service
結果這時發現 kmp.service 是紅色的,後面注釋faild,不過沒有說明原因。經網路的幫助找到了如下方法,實測有效,特此記錄。
1、編輯 /etc/default/grub 文件修改 crashkernel 後面的auto 為 128M,128M可以改成別的數,以64M為步進數,比如64M,192M等。
sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=128M rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
2、生成新的 grub.cfg
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
關於grub.cfg路徑:對於bios+mbr磁碟是/boot/grub2/grub.cfg,對於efi啟動的grub.cfg路徑應該和系統類型有關,具體路徑不再詳細列出。
例如,fedora系統 efi grub.cfg的鏈接路徑是/etc/grub2-efi.cfg,鏈接到真實路徑是 /boot/efi/EFI/fedora/grub.cfg。
centos系統efi grub.cfg的鏈接路徑是/etc/grub2-efi.cfg,鏈接到真實路徑是 /boot/efi/EFI/centos/grub.cfg。
3、重啟,才能生效,當然,也可以看到效果
reboot
啟動完成後,使用命令 systemctl list-units --type=service 來查看情況,結果正常啟動了,到此解決完成。
3. Centos7 ssh服務重啟出錯
IP配置正確 selinux 和firewalld都關閉的前提下
SSH 服務時出現如下錯誤:status=255 ,Bad configuration options
tail /var/log/messages
發現sshd_config line 117行出現配置報錯
先 vi /etc/ssh/sshd_config
在 ESC :117 回車
找到出錯行注釋掉
systemctl restart sshd
systemctl status sshd
服務恢復正常