【讲清楚,说明白!】服务管理

目录:
(一)了解服务的概念
(二)服务器状态查看、启动、关闭、重启
(三)设置服务开机自动启动
(四)服务是如何定义的
(五)运行级别:了解后缀为target的服务vim


(一)了解服务的概念
(1.1)首先咱们看一下Windows系统中的服务,例如系统中的DHCP Client服务,其中“状态”指的是当前的状态,而当前状态咱们能够选择“启动、中止、暂停、恢复、从新启动”;即便咱们设置当前的状态为“中止”,可是在系统从新启动后仍然是会成为“已开启”的状态,这是因为在“启动类型”处,咱们设置的是“自动”启动类型,所以启动类型不会影响当前系统的状态,只会影响系统下次重启系统时的状态。
【讲清楚,说明白!】服务管理bash


(二)服务器状态查看、启动、关闭、重启
(2.1)而在Linux系统中,咱们可使用systemctl命令查询系统中全部的服务信息(图1-2),在Linux系统中相似于Windows系统中的服务都是之后缀为service的服务(图1-3)。
# systemctl list-unit-files---查询系统中全部的服务
# systemctl list-unit-files --type service---查询全部类型为service的服务
【讲清楚,说明白!】服务管理
【讲清楚,说明白!】服务管理
(2.2)咱们首先查询系统中是否有ftp、sshd服务,可使用list-unit-files参数肯定服务的具体名称。而后能够查询sshd服务是不是正常运行的状态,接着能够对服务进行一系列中止、启动、重启的操做,可是当前的操做都只是对系统的当前状态进行的,若是系统重启后,当前的设置都会默认到系统原始的状态。
# systemctl list-unit-files --type service |grep ftp---查询系统中是否有ftp服务
# systemctl list-unit-files --type service | grep ssh---查询系统中是否有ssh服务
# systemctl is-active sshd---查询sshd服务是否正常运行
# systemctl stop sshd.service---关闭sshd服务运行
# systemctl start sshd---将sshd服务启动起来
# systemctl restart sshd.service---将sshd服务重启一下
【讲清楚,说明白!】服务管理服务器


(三)设置服务开机自动启动
(3.1)若是咱们如今但愿系统的sshd服务在开机后可以自动启动,咱们可使用以下的方式进行设置。
# systemctl is-enabled sshd.service---查询sshd服务是否设置了开机自动启动
# systemctl disable sshd.service---设置sshd服务开机不会自动启动
# systemctl enable sshd.service---设置sshd服务开机可以自动启动
【讲清楚,说明白!】服务管理
(3.2)若是咱们想将一个服务设置为“禁用”的模式,则可使用mask命令设置服务是否为禁用的状态。
# systemctl mask sshd---将sshd服务设置为“禁用”模式
# systemctl is-active sshd.service---查询当前sshd服务的状态
# systemctl stop sshd---将sshd服务中止
# systemctl start sshd---此时发现没法正常的启动sshd服务了
# systemctl unmask sshd.service---解除sshd服务的“禁用”模式
【讲清楚,说明白!】服务管理
(3.3)若是咱们想查看服务的状态时,可使用status参数查看服务的状态信息。
# systemctl status sshd---查询系统中sshd服务的状态
# systemctl status sshd -l---查询系统中sshd服务的状态,以及更详细的信息
【讲清楚,说明白!】服务管理ssh


(四)服务是如何定义的
(4.1)如今咱们但愿本身可以定义一个服务memload,咱们首先将memload-7.0-1.r29766.x86_64.rpm软件下载到vms002主机上(图4-1),接着咱们将memload软件包安装起来,此时咱们发如今/usr/local/bin/目录下存在一个memload文件(图4-2)。
【讲清楚,说明白!】服务管理
【讲清楚,说明白!】服务管理
(4.2)接着咱们在vms002主机上建立一个memload.service的文件,同时在文件中指明,若是开启服务,会指定消耗的内存空间,若是中止服务的时候,会执行杀死memload进程的操做(图4-3)。而后咱们将memload.service配置文件考本到/usr/lib/systemd/system/目录中,此时咱们在系统中便会发现已经有memload.service服务生成了(图4-4)。此时咱们将memload服务运行起来后发现自定义的服务启动后,系统的used部分的内存使用量确实增长了1G左右(图4-5)。自定义服务,定制服务
# systemctl start memload---将自定义的服务memload启动
# ps aux | grep -v grep | grep memload---咱们查询系统是否有memload服务在运行
【讲清楚,说明白!】服务管理
【讲清楚,说明白!】服务管理
【讲清楚,说明白!】服务管理
(4.3)而后咱们将memload服务中止后,发现此时系统的used使用空间又恢复到了最开始没有没消耗1G内存的状态了。
# systemctl stop memload.service---将memload服务中止运行
# ps aux | grep -v grep | grep memload---咱们查询系统是否有memload服务在运行
# free -m---查询系统的内存空间使用状况
注意:经验总结# ps axj | more---能够查询后台全部守护进程的状况daemon,后台守护进程,后台进程
【讲清楚,说明白!】服务管理
(4.4)当咱们启动一个服务的时候,则在后台会启动一个命令,这个命令咱们称之为守护进程daemon,服务就是一个文件来管理daemon。若是有时候咱们想要查看某个daemon的配置文件的位置,可使用status参数(图4-7),此时咱们即可以看到sshd.service配置文件中关于ExecStart和ExecReload的配置信息(图4-8)。
# systemctl status sshd---查询sshd服务的状态
【讲清楚,说明白!】服务管理
【讲清楚,说明白!】服务管理
(4.5)若是咱们须要查询一个服务配置文件的路径时,可使用which命令便可,即可以查询到服务执行的命令的可执行文件的位置了。
# which sshd---查询出sshd服务具体执行的命令的路径
# cat /usr/lib/systemd/system/sshd.service
【讲清楚,说明白!】服务管理socket


(五)运行级别:了解后缀为target的服务
(5.1)通常咱们在系统中使用tab键时能够进行命令的快速索引的,而咱们若是使用最小化安装系统的时候会发现没法使用快速索引的功能,此时咱们应该安装bash-completion.noarch这个软件包,而后将系统重启一下,此时咱们便又可使用tab命令快速索引的功能了。自动补全,自动补齐
# yum install bash-completion.noarch -y
【讲清楚,说明白!】服务管理
(5.2)在咱们系统中有不少类型的服务,例若有后缀为service的服务,也有后缀为socket的服务,还有后缀为mount的服务,咱们如今来关注的是后缀为target的服务。
# systemctl list-unit-files --type target---查询后缀为target的服务
【讲清楚,说明白!】服务管理
(5.3)所谓target的服务,实际上相似于RHEL 6所说的运行级别的概念。咱们在开机后通过了BIOS加电自检-->GRUB引导程序-->内核初始化,此时会读取/etc/fstab文件中的内容,挂载各个设备,同时启动各个服务。此时在咱们的系统中是存在多个选择的,例如咱们有0-6一共7个服务可供选择,假设A、B、C、D表明的是系统普通服务,X表明的是图形化界面服务。例如咱们如今想要运行rc5.d服务,此时系统启动起来后,咱们系统中就会有ABDX服务在运行了。若是咱们如今已经在rc5.d的级别运行了,此时咱们但愿可以切换到rc3.d的级别运行,那么系统须要作的是将当前运行的ADX服务关闭,而后将没有运行的C服务开启,此时咱们系统就进入了rc3.d的运行级别了。通常系统默认的运行级别是rc5.d,它是在/etc/inittab文件的最后一行定义的。
【讲清楚,说明白!】服务管理
(5.4)在RHEL 6系统中,对于运行级别咱们通常作以下的定义,其中rc0.d表示的是“关机”;rc1.d表示的是“单用户模式”或“救援模式”;rc2.d表示的是“命令行”模式,可是不能使用nfs;rc3.d表示的是“全模式”即全部功能均可以使用,可是只在字符界面操做;rc4.d属于未分配的模式;rc5.d表示是“全模式”,同时是图形化的操做界面;rc6.d表示的是“重启”。咱们使用runlevel命令就能够查看当前系统是属于哪一个运行级别,若是咱们想关机能够执行init 0,若是咱们想重启系统则能够执行init 6
# runlevel---查看系统的运行级别
# init 6---重启系统
【讲清楚,说明白!】服务管理
(5.5)在RHEL 7系统中咱们所看到后缀为target的服务其实就是运行级别。其中RHEL 7系统的各个运行级别和RHEL 6系统运行级别的对好比下图所示。默认状况下咱们的系统启动后的运行级别为“runlevel5.target”或“graphical.target”即图形化界面的模式,咱们能够经过get-default命令查看系统的默认级别。
# systemctl get-default---查询系统的默认级别
【讲清楚,说明白!】服务管理
【讲清楚,说明白!】服务管理
(5.6)若是咱们但愿将当前的运行级别临时切换为多用户字符命令模式,则可使用isolate命令(图5-7),临时切换系统的运行级别为字符界面多用户模式,此时咱们发现此时系统当前的运行级别已是3级别了(图5-8)。
# systemctl isolate multi-user.target---临时切换系统的运行级别为字符界面多用户模式
【讲清楚,说明白!】服务管理
【讲清楚,说明白!】服务管理
(5.7)如今咱们在字符界面输入startx命令后便进入了图形化的界面了,此时咱们发现虽然是图形化界面,可是系统的运行级别仍然是3即多用户字符界面的模式。因为咱们在(5.6)的操做步骤中已经将当前系统的运行级别临时设置为3了,因此此时3的运行级别下默认是不启用X服务的,可是咱们是能够单独额外的启动X服务。若是咱们想要切换到图形化界面运行,则可使用isolate命令临时设置当前的状态为graphical.target模式。
【讲清楚,说明白!】服务管理
【讲清楚,说明白!】服务管理
(5.8)注意在RHEL 6系统中若是咱们是属于运行级别5图形化界面,而后咱们使用Ctrl+alt+F2进入到字符界面后,此时咱们在字符界面执行startx命令,是没法正常的执行成功的,执行后产生了冲突,系统会认为我如今已是在运行级别5的,并且已经能执行一个startx的服务,不能在执行第二个一样的服务的。
(5.9)咱们在vms002主机的系统中默认的运行级别是graphical.target,若是咱们但愿更改系统默认的运行级别,则应该使用set-default命令,此时咱们即可以使得系统默认的运行级别为multi-user.target了(图5-11)。此时的设置并不会影响系统当前的状态,咱们发现系统的当前状态仍然为graphical.target图形化界面,而重启系统主要能够经过图5-12的四种方法进行。
# systemctl get-default---查询系统当前的默认运行级别
# systemctl set-default multi-user.target---修改系统默认的运行级别为multi-user.target
# reboot---重启系统方法1
# init 6---重启系统方法2
# systemctl isolate reboot.target---重启系统方法3
# systemctl isolate runlevel6.target---重启系统方法4
【讲清楚,说明白!】服务管理
【讲清楚,说明白!】服务管理
(5.10)重启系统后,此时咱们默认是进入到了命令行字符的界面,而后咱们使用isolate命令设置登陆图形化界面graphical.target(图5-13),此时咱们发现系统的默认运行级别仍然设置的为multi-user.target,因此即便系统再次重启也仍然是进入命令行字符界面(图5-14)。
# systemctl isolate graphical.target---临时切换登陆到图形化的界面
【讲清楚,说明白!】服务管理
【讲清楚,说明白!】服务管理
(5.11)咱们但愿查看图形化界面的服务是在哪里定义的,咱们可使用systemctl status命令进行查询(图5-15),而后咱们即可以在/usr/lib/systemd/system/目录中找到graphical.target服务的配置文件并查看配置文件的详细信息(图5-16和图5-17)。
# systemctl status vsftpd---查询vsftpd服务的状态
# cd /usr/lib/systemd/system/
# vim graphical.target
【讲清楚,说明白!】服务管理
【讲清楚,说明白!】服务管理
【讲清楚,说明白!】服务管理ide

—————— 本文至此结束,感谢阅读 ——————命令行