1. 程式人生 > >systemd服務及開啟關閉服務命令

systemd服務及開啟關閉服務命令

RHEL/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命令。

systemd是服務管理程式,他整合了service和chkconfig的功能為一體,可以永久性或只在當前會話中啟用/禁用服務。


#檢視正在執行的服務
systemctl

#啟動,停止,重啟服務
systemctl start  foo.service
systemctl stop foo.service
systemctl restart foo.service

#檢視一個服務的狀態
systemctl status foo.service

#開機時啟用一個服務
systemctl enable foo.service

#開機時關閉一個服務
systemctl disable foo.service

#檢視服務是否開機啟動
systemctl is-enabled foo.service

例:開機啟動sshd服務

systemctl enable sshd.service

作者為了配置防火牆,尋找iptables服務不得,直到某一刻! 才發現,我用的是CentOS 7.0,而這個版本的防火牆,預設使用的是firewall,與之前的版本使用iptables是不一樣的,這點很重要!
 
所以如果要配置防火牆,開啟埠的話,可以用如下做法:


1、關閉firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動


2、安裝iptables防火牆
yum install iptables-services #安裝


接下來的事情就和用iptables是一樣的了,若要開啟某埠,則(80埠為例,紅色為新增的規則):
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允許80埠通過防火牆


############################## 新增後防火牆規則如下所示 ##############################
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

網路服務:

CentOS 7 重啟網路服務,輸入下面的命令:
 systemctl retart network.service 

 systemctl restart network 

Centos 7 啟動網路服務,輸入下面的命令:
 systemctl start network.service
 或
 systemctl start network 


CentOS 7 停止網路服務,輸入命令:
 systemctl stop network.service
 或
 systemctl stop network