C6开机启动流程

1.内核引导,加电自检(通电后检查内核):检查bios的配置,检测硬件

装好系统之后才会进行以下内容

MBR 引导 (3.2.1...)

GRUB菜单 (选择不同的系统)(按e,进入单用户模式)

c6改密码很简单,可以直接改

2.运行init

  • 0:关机(系统加载到init 0 ,会开关机)
  • 1:单用户模式(修改密码或开机死循环)(单用户工作状态,root权限,用于系统维护,禁止远程登陆)(开机按E进入单用户命令行模式之后,vim /etc/inittab 修改左下角重启就好)(开机按e进入单用户命令行模式之后,echo xx |passwd --stdin root 可以修改密码
  • 2:多用户模式(没有文件系统和网络)
  • 3:多用户模式(命令行,默认模式)(纯命令行模式)
  • 4:没有使用的模式(废物模式)
  • 5:多用户模式(图形化界面)
  • 6:重启(默认运行级别不能设为6,否则不能正常启动,死循环)

c6

查看当前运行的级别,c6,c7都可以使用runlevel查看运行级别
[root@oldboy ~]# vim /etc/inittab # 可以看到左下角的运行级别
[root@zls ~]# runlevel 上一次的运行级别和现在的级别
N 3
临时切换运行级别
[root@zls ~]# init 5 切换,没有图形化界面则不会切换
[root@zls ~]# runlevel
3 5 永久修改C6运行级别
[root@zls ~]# vim /etc/inittab
id:3:initdefault

c7

[root@oldboy ~]# vim /etc/inittab
# inittab is no longer used when using systemd.
使用systemd时不再使用inittab。
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
在此处添加配置不会对您的系统产生任何影响。
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
Ctrl Alt Delete由/usr/lib/systemd/system/Ctrl-Alt-del.target处理
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
systemd使用“targets”而不是runlevels。默认情况下,有两个主要目标:
# multi-user.target: analogous to runlevel 3
multi-user.target:类似于runlevel 3
# graphical.target: analogous to runlevel 5
graphical.target:类似于runlevel 5
# To view current default target, run:
要查看当前默认目标,请运行:
# systemctl get-default
#
# To set a default target, run:
要设置默认目标,请运行:
# systemctl set-default TARGET.target [root@oldboy ~]# systemctl set-default multi-user.target # 永久修改运行级别 [root@oldboy ~]# ll /usr/lib/systemd/system/|grep '.target$'
-rw-r--r--. 1 root root 402 Aug 8 2019 shutdown.target #关机,如果虚拟机设置了这个级别,那么系统每次开机加载过运行级别之后,就会关机
-rw-r--r--. 1 root root 486 Aug 8 2019 rescue.target #单用户模式,在命令行模式无法进入单用户模式,只能在grub或grub2进入单用户模式
-rw-r--r--. 1 root root 492 Aug 8 2019 multi-user.target #多用户模式,也是开机默认进入的模式
-rw-r--r--. 1 root root 558 Aug 8 2019 graphical.target #图形化模式,在命令行可以切换到图形化模式,前提是安装了图形化模式
-rw-r--r--. 1 root root 552 Aug 8 2019 poweroff.target #重启,如果虚拟机设置了这个级别,那么系统每次开机加载过运行级别之后,就会重启

3.系统初始化(启动相关服务)

在init的配置文件中(/etc/inittab)有这么一行: si::sysinit:/etc/rc.d/rc.sysinit 它调用执行了/etc/rc.d/rc.sysinit,而rc.sysinit是一个bash shell的脚本,它主要是完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要首先运行的重要脚本。

它主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务。

l5:5:wait:/etc/rc.d/rc 5

这一行表示以5为参数运行/etc/rc.d/rc,/etc/rc.d/rc是一个Shell脚本,它接受5作为参数,去执行/etc/rc.d/rc5.d/目录下的所有的rc启动脚本,/etc/rc.d/rc5.d/目录中的这些启动脚本实际上都是一些连接文件,而不是真正的rc启动脚本,真正的rc启动脚本实际上都是放在/etc/rc.d/init.d/目录下。

而这些rc启动脚本有着类似的用法,它们一般能接受start、stop、restart、status等参数。

/etc/rcn.d 下面以S开头的 (软连接)是开机启动的服务的顺序,以K开头的是停止(开机不启动)的服务

 **c6可以使用以下命令,c7不能使用(不能使用chkconfig --add,可以使用runlevel)**
```bash
chkconfig --list 列出所有的系统服务
chkconfig --add httpd 增加httpd服务 # 先添加,后选择级别
chkconfig --del httpd 删除httpd服务
chkconfig命令提供了一种简单的方式来设置一个服务的运行级别。例如,为了设置MySQL服务器在运行级别3和4上运行,# 你必须首先将MySQL添加为受chkconfig管理的服务:
chkconfig --add mysql 现在,我们在级别3和5上设定服务为“on”
chkconfig --level 35 mysql on # 纯命令模式和图形化模式

chkconfig mysql on # 默认是3 上 on 在其他级别上设为off
chkconfig --level 01246 mysql off
为了确认你的配置被正确的修改了,我们可以列出服务将会运行的运行级别,如下所示: #chkconfig --list mysql
mysql 0:off 1:off 2:off 3:on 4:off 5:on 6:off [root@oldboy ~]# ll /etc/systemd/system/multi-user.target.wants/ 查看开机自启动服务
[root@oldboy ~]# chkconfig --level 35 nginx on
lrwxrwxrwx 1 root root 37 Apr 25 08:49 nginx.service -> /usr/lib/systemd/system/nginx.service 系统自动创建了软连接(开机自启动)

c7 添加服务到开机自启动 (这个时候源码nginx要 可以使用systemctl,也就是说运行过那个脚本,如果脚本里面指定有创建/usr/lib/systemd/system/nginx.service脚本并写入了,启动信息就可以!)

[root@oldboy ~]# systemctl enable nginx  (状态改变,才会输出)
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
创建了从/etc/systemd/system/multi-user.target.want/nginx.service到/usr/lib/systemd/system/nginx.service的符号链接。(# 前提的nginx.service存在) [root@oldboy ~]# reboot
[root@oldboy ~]# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server (绿色,开机自启动了) # 使用软连接让服务加入开机自启动
[root@oldboy ~]# ll /usr/lib/systemd/system/
-rw-r--r-- 1 root root 635 Apr 24 08:26 nginx.service
[root@oldboy ~]# ll /etc/systemd/system
drwxr-xr-x. 2 root root 87 Apr 18 22:09 default.target.wants
ln -s /usr/lib/systemd/system/nginx.service /etc/systemd/system/multi-user.target.wants/nginx.service [root@oldboy ~]# ll /etc/systemd/system/multi-user.target.wants
total 0
lrwxrwxrwx. 1 root root 38 Apr 18 22:10 auditd.service -> /usr/lib/systemd/system/auditd.service

4.建立终端(tty)

tty1~6,是centos系统(init服务)默认创建的6个终端,是内核需要用到的终端,(可以在命令行使用 init N 实现终端之间的切换)

pts/0 , pts/1 xshell远程连接的终端

启动mingetty 进程

5.用户登录

一般来说,用户的登录方式有三种:

(1)命令行登录(虚拟机)

(2)ssh登录

(3)图形界面登录

## 关机命令
init 0 立马关机
halt 立马关机
shutdown -h now 立马关机
shutdown -h 20:20
shutdown -h +10
shutdown -a 取消关机设置
poweroff 立马关机 ## 重启命令
init 6
reboot
shutdown -r now
shutdonw -r 20:20
shutdown -r +10

C7

1.BIOS(开机自检)

打开系统电源后,它将读取所有设备设置并执行开机自检(开机自检)过程,以识别硬件设备,以测试和初始化系统硬件组件。成功后处理后,它将加载MBR(主引导记录)以进行下一个引导处理。

2.MBR ( Master Boot Record 主引导记录)

主引导记录放在Linux引导硬盘的第一个扇区中,MBR的大小只有512个字节,它包含用于引导操作系统的机器代码指令,称为引导加载程序,以及分区表

3.GRUB2 Bootloader(引导菜单)

言简意赅:grub2菜单,如果装了双系统会让你进行选择

grub2配置文件位于/boot/grub2/grub.cfg中,由grub2 mkconfig使用/etc/grub.d中的模板和/etc/default/grub中的设置自动生成。不建议编辑GRUB2配置文件

4.Kernel(内核引导)

Linux内核是操作系统的核心,它是系统上第一个加载的程序。当系统启动时,内核从initrd.img加载所有必要的内核模块和驱动器,以加载Linux7中的系统第一个进程systemd,在6里面,init是爸爸,在7里面换了个爸爸,那就是systemd

 [root@oldboy ~]# top
1 root 20 0 125324 3852 2608 S 0.0 0.4 0:02.38 systemd [root@oldboy ~]# ll /etc/init.d/ 只能用绝对路径的方式启动/etc/init.d/下的2个服务,centos7里面,大多数服务都是用systemctl这个命令管理
total 40
-rw-r--r--. 1 root root 18281 Mar 29 2019 functions
-rwxr-xr-x. 1 root root 4569 Mar 29 2019 netconsole
-rwxr-xr-x. 1 root root 7923 Mar 29 2019 network
-rw-r--r--. 1 root root 1160 Aug 8 2019 README #centos7上使用centos6的命令:
[root@oldboy ~]# /etc/init.d/network restart
Restarting network (via systemctl): [ OK ]
[root@oldboy ~]# service network restart
Restarting network (via systemctl): [ OK ] #判断/syy 目录或文件是否存在
[root@oldboy ~]# vim a.sh
#!/bin/bash
. /etc/init.d/functions if [ -d /root/syy ];then
action '该目录已存在' /bin/true
else
action '该目录不存在' /bin/false
fi
[root@oldboy ~]# sh a.sh
该目录已存在 [ OK ]

5.Systemd (不再使用init,改成了systemd)

systemd使用“targets”而不是runlevels。默认情况下,有两个主要级别:

1) multi-user(多用户).target: analogous to runlevel 3
#查看运行级别
[root@zls ~]# systemctl get-default
multi-user.target
2) graphical(图形化).target: analogous to runlevel 5
#设置默认运行级别
[root@zls ~]# 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. #查看默认界面
[root@zls ~]# systemctl get-default
graphical.target [root@zls ~]# vim /etc/inittab
# inittab is no longer used when using systemd.
使用systemd时不再使用inittab
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
在此处添加配置不会对您的系统产生任何影响
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
Ctrl Alt Delete由/usr/lib/systemd/system/Ctrl-Alt-del.target处理
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
systemd使用“targets”而不是runlevels。默认情况下,有两个主要目标:
# multi-user.target: analogous to runlevel 3
multi-user.target:类似于runlevel 3
# graphical.target: analogous to runlevel 5
graphical.target:类似于runlevel 5
# To view current default target, run:
要查看当前默认目标,请运行
# systemctl get-default
#
# To set a default target, run:
要设置默认目标,请运行:
# systemctl set-default TARGET.target CentOS7中的运行级别:(runlevel:运行级别的意思)
[root@lb01 ~]# ll /usr/lib/systemd/system/|grep ^l
runlevel0.target -> poweroff.target # 关机
runlevel1.target -> rescue.target # 单用户模式 (救援模式)
runlevel2.target -> multi-user.target # 多 (没有文件系统和网络)
runlevel3.target -> multi-user.target # 多 (命令行,默认模式)(纯命令行模式)
runlevel4.target -> multi-user.target # 多
runlevel5.target -> graphical.target # 图形化模式
runlevel6.target -> reboot.target # 重启 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户运行级别(没有文件系统)
运行级别3:完全的多用户状态(有文件系统),登陆后进入控制台命令行模式
运行级别4:多用户运行级别
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

6.Runlevel-target(运行级别)

init 0.target -> poweroff.target		# 关机
init 1.target -> rescue.target # 单用户模式
init 2.target -> multi-user.target # 多用户模式(没有文件系统和网络)
init 3.target -> multi-user.target # 多用户模式(命令行模式,默认模式)
init 4.target -> multi-user.target # 多用户模式(还是没有被使用)
init 5.target -> graphical.target # 图形化模式
init 6.target -> reboot.target # 重启 # 获取当前默认的运行级别
[root@qls ~]# systemctl get-default
multi-user.target # 修改运行级别
[root@qls ~]# systemctl set-default poweroff (可以分开成两条命令,自己做软链接) [root@oldboy ~]# ll /etc/systemd/system/
lrwxrwxrwx. 1 root root 37 Apr 18 22:12 default.target -> /lib/systemd/system/multi-user.target [root@oldboy ~]# ll /usr/lib/systemd/system/
-rw-r--r--. 1 root root 552 Aug 8 2019 poweroff.target
-rw-r--r--. 1 root root 486 Aug 8 2019 rescue.target
-rw-r--r--. 1 root root 492 Aug 8 2019 multi-user.target
-rw-r--r--. 1 root root 558 Aug 8 2019 graphical.target
-rw-r--r--. 1 root root 543 Aug 8 2019 reboot.target #c7看 /etc/systemd/system/default.target 链接关系找 对应的运行级别,/usr/lib/systemd/system/multi-user.target
#/etc/systemd/system/default.target.wants 目录下的xx.service文件,连接到/usr/lib/systemd/system/xx.service c6看 配置文件中(/etc/inittab),调用执行了/etc/rc.d/rc.sysinit,然后选择对应的运行级别
rcN.d 实现切换系统开机运行服务的级别 ## 使用两条命令修改默认运行级别
[root@qls ~]# rm -f /etc/systemd/system/default.target
[root@qls ~]# ln -s /usr/lib/systemd/system/poweroff.target /etc/systemd/system/default.target ## 相关目录
[root@qls ~]# ll /etc/systemd/system (默认的运行级别)
[root@qls ~]# ll /usr/lib/systemd/system (运行级别和服务启动 脚本)

[root@qls ~]# systemctl set-default poweroff

CentOS7进入单用户模式

C7开机,出现grub2菜单的时候,按e进入单用户模式,q退出来,回车进入系统,

linux16这一行UTF-8后面输入enforcing=0 init=/bin/bash  (顺序不重要)
可以手动修改ro 为 rw ,(这样可以使用systemctl了)
ctrl + x 真正进入单用户模式 ## 修改默认启动方式
bash-4.2# mount -o rw,remount / 重新挂载根目录(英文逗号)(改成读写权限)
bash-4.2# systectl set-default multi-user.target (不能用systemctl)(只能分开执行)
bash-4.2# rm -f /etc/systemd/system/default.target
bash-4.2# ln -s /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target
bash-4.2# exec /sbin/init 重新引导init后可以使用systemctl ## 修改密码
bash-4.2# mount -o rw,remount /
bash-4.2# echo 123|passwd --stdin root
bash-4.2# exec /sbin/init 进入命令行模式,最好重新修改一次密码(有些情况单用户修改后的密码是一次性使用的)

方法2

linux16这一行UTF-8后面输入 rd.break (这种方法只能修改启动级别,不能修改密码,无论的交互还是非交换,有的系统可以改)

switch_root:/# mount -o rw,remount /sysroot  重新挂载/sysroot
switch_root:/# chroot /sysroot 获取root权限,命令提示符改变
sh-4.2# systemctl set-default multi-user.target 可以使用systemctl
sh-4.2# exit 退出
switch_root:/# reboot 重启

[root@qls ~]# systemctl set-default poweroff

总结

# 查看默认运行级别
systemctl get-default
runlevel # 设置默认运行级别
systemctl set-default multi-user.target ###
rm -f /etc/systemd/system/default.target
ln -s /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target # 设置开机自启动
1. systemctl enable nginx
systemctl disable nginx 取消服务的开机自启
2. ln -s /usr/lib/systemd/system/nginx.service /etc/systemd/system/multi-user.target.wants/nginx.service
#注意,/usr/lib/systemd/system/下得有nginx.service,也就是运行了ngin-rpm -d指定的那个脚本,执行了那个脚本,/usr/lib/systemd/system/就有有nginx.service
同样,如果服务开机自启,那么,/etc/systemd/system/multi-user.target.wants/下就有nginx.service, ## 单用户模式
CentOS7忘记root密码,进入单用户模式
```bash
1.重启系统
2.在grub菜单界面,按'e'进入单用户模式 **3.方法一:**
在linux16内容的行末写`enforcing=0 init=/bin/bash`按`Ctrl + x`正式进入单用户模式 4.重新挂载 `/`目录,权限设置为可读可写(rw)
mount -o rw,remount / 5.修改root密码
echo 1|passwd --stdin root 6.重新加载systemd
exec /sbin/init
reboot **方法二:**
```bash
在linux16内容的行末写`rd.break`按`Ctrl + x`开机
重新挂载`sysroot`目录设置可读可写权限(rw)
mount -o rw,remount /sysroot #获取root权限
chroot /sysroot #设置root密码
echo 123|passwd --stdin root #退出sh-4.2
exit #重启服务器
reboot

救援模式

救援模式的作用

-不损坏数据的前提下,修复磁盘(/dev/sda),,,密码,运行级别

-修复grub2菜单(/boot/grub2/grub2.cfg)

1.打开电源进入BIOS
2.选择boot界面,将CD-ROM(光驱),放在第一行(,选择,按 + )
3.按F10保存退出,把CD提到第一位,按f10,这样保存之后,重启系统的话,我们将会从光驱进入系统,这样可以选择是否进入救援模式
同样的,如果在服务器上插入USB(U盘),bios一般也可以扫描到U盘,所以,我们也可以在这里选择是否从U盘进入系统,修复系统。(前提是U盘上有相应的镜像)
4.选择yes
5.进入救援模式
install centos7 就是安装centos7,安装系统也可以达到修复系统的目的,但是会导致数据清空
选择install centos 7 按TAB键可以修改默认网卡名(eth),dell(戴尔服务器)net.ifnames=0 biosdevname=0,如果不是戴尔服务器,net.ifnames=0
选择硬盘启动的话,直接进入系统(常用的那个)
回车
救援模式是通过第二行进入的,单用户模式是通过--从硬盘启动---grub菜单---按e----进入的, 救援模式:1.修复磁盘。2.修复grub菜单,3.修改运行级别,修改密码
单用户模式:1.修改运行级别。2.修改忘记的密码 6.进入救援模式之后,选择(1)继续
回车 (获取root权限)
输入chroot /mnt/sysimage 修改修改密码,修改运行级别了 exit
reboot 选择救援模式(3)---救援模式(4)--输入修改后的密码进入系统)

场景二:损坏MBR(磁盘损坏,无法进入系统),进入救援模式解决

## 损坏MBR
[root@oldboy ~]# ll /dev/sda*
brw-rw---- 1 root disk 8, 0 Apr 24 16:39 /dev/sda #磁盘
brw-rw---- 1 root disk 8, 1 Apr 24 16:39 /dev/sda1 #分区
brw-rw---- 1 root disk 8, 2 Apr 24 16:39 /dev/sda2
brw-rw---- 1 root disk 8, 3 Apr 24 16:39 /dev/sda3 [root@qls ~]# dd < /dev/zero >/dev/sda bs=1 count=446 (默认单位是b字节) 损坏磁盘的前 512b(小心不是bs=1M count=10 哈哈)
446+0 records in
446+0 records out
446 bytes (446 B) copied, 0.00032064 s, 1.4 MB/s
选救援模式
选从本地硬盘启动 (假装若无其事)
刚刚对磁盘的写入已经损坏了磁盘前512b,无法找到操作系统
遇到这一步的解决方法,1.重装系统(但是数据没了),windows可以用pe,linux不能用pe 2.
进入救援模式
选第二个,进入救援模式
输入以下内容 sh-4.2# chroot /mnt/sysimage 提权
bash-4.2# grub2-install /dev/sda 修复
bash-4.2# exit 退出
sh-4.2# reboot 修复磁盘扇区成功,可以重新进入系统(数据不变)
选择从本地硬盘启动,进入正常的操作系统(去看看有没有真的修好 ## 场景3:误删除GRUB菜单(啥都没了),进入救援模式
```bash
[root@oldboy ~]# ll /boot/
total 91920
-rw-r--r--. 1 root root 152976 Aug 8 2019 config-3.10.0-1062.el7.x86_64
drwxr-xr-x. 3 root root 17 Apr 18 22:09 efi
drwxr-xr-x. 2 root root 27 Apr 18 22:09 grub
drwx------. 5 root root 97 Apr 23 21:41 grub2 #
[root@oldboy ~]# cd /boot/grub2
[root@oldboy grub2]# ll
total 32
-rw-r--r--. 1 root root 84 Apr 18 22:12 device.map
drwxr-xr-x. 2 root root 25 Apr 18 22:12 fonts
-rw-r--r--. 1 root root 4261 Apr 18 22:13 grub.cfg # [root@qls ~]# rm -fr /boot/grub2/
[root@qls ~]# reboot

从硬盘进入(假装若无其事)

grub2菜单被删除,简单的ll,ls,命令都不能使用
grub2菜单被删除,就肯定进不去单用户模式,单用户模式是进入grub2菜单之后,按e进入的
再次进入救援模式
输入以下内容,看右下角,alt+tab 可以切换窗口 sh-4.2# chroot /mnt/sysimage 提权
bash-4.2# grub2-install /dev/sda
bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg 创建配置文件
bash-4.2# exit
sh-4.2# reboot

选从本地硬盘启动,进入命令行模式

可以进入系统了,说明/boot/grub2/grub.cfg已经做好了

如果不想再进入光驱系统了,那么关闭虚拟机,选择打开电源进入固件,进入bios。选择boot

把Hard Drive 提到第一位,f10保存退出,这样重新启动,虚拟机将会直接从本地硬盘进入系统


C6 C7

systemd优势

1.最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15...)

2.CentOS7 支持开机并行启动服务,显著提高开机启动效率

3.CentOS7关机只关闭正在运行的服务,而CentOS6,全部都关闭一次。

4.CentOS7服务的启动与停止不在使用脚本进行管理,也就是/etc/init.d下不在有脚本。

5.CentOS7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。

什么是systemd

systemd即为system daemon守护进程,为系统的启动和管理提供一套完整的解决方案。

systemd相关的配置文件

/usr/lib/systemd/system #类似C6系统的启动脚本目录/etc/init.d/

/etc/systemd/system/ #类似C6系统的/etc/rc.d/rcN.d/

/etc/systemd/system/multi-user.target.wants/


Linux一直以来都采用init进程作为爸爸,但是init有两个缺点:

1.启动时间长,init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。

2.启动脚本复杂,初始化完成后,系统会加载很多脚本,脚本都会处理各自的情况,这回让脚本多而复杂

systemd 相关文件

相关文件 CentOS6 CentOS7
服务启动脚本存放路径 /etc/init.d /usr/lib/systemd/system
开机自启服务存放路径 /etc/rcN.d /etc/systemd/system/N.target.wants
默认运行级别 /etc/inittab /etc/systemd/system/default.target

systemd启动相关命令

system V init CentOS6 systemd CentOS7 作用
/etc/init.d/nginx start systemctl start nginx 启动nginx服务
/etc/init.d/nginx stop systemctl stop nginx 停止nginx服务
/etc/init.d/nginx status systemctl status nginx 查看服务的启动状态
/etc/init.d/nginx restart systemctl restart nginx 重启服务
/etc/init.d/nginx reload systemctl reload nginx 不停止服务,重新加载nginx配置文件
systemctl is-acvite nginx 判断nginx服务是否存活(写脚本用)
systemctl mask nginx 禁止服务运行
systemctl unmask nginx 取消禁止
service nginx start service nginx start 启动nginx服务

service不能TAB,c6c7都可以使用service命令(向下兼容)

restart 停止服务,重新加载nginx配置文件,然后再启动,reload 不停止服务,重新加载nginx配置文件,只有nginx可以使用reload(reload报错就用重启restart试试)

./nginx -t 或者 /app/nginx/sbin/nginx -t 检查nginx配置文件有没有问题,有错误的话就显示错误的位置,不能nginx -t 是因为nginx没有加入到环境变量(PATH)

[root@oldboy ~]# systemctl is-active nginx
unknown
[root@oldboy ~]# systemctl start nginx
[root@oldboy ~]# systemctl is-active nginx
active [root@oldboy ~]# vim nginx.sh
panduanjieguo=$(systemctl is-active nginx)
if [ $panduanjieguo == 'active' ];then
echo 'nginx存活'
else
echo 'nginx不存活'
fi [root@oldboy ~]# systemctl mask nginx
Created symlink from /etc/systemd/system/nginx.service to /dev/null.
创建了从/etc/systemd/system/linix.service到/dev/null的符号链接。(#软链接)
[root@oldboy ~]# systemctl start nginx
Failed to start nginx.service: Unit is masked.
[root@oldboy ~]# systemctl unmask nginx
Removed symlink /etc/systemd/system/nginx.service.

systemd开机自启动相关命令

C6 C7 作用
chkconfig --list systemctl list-unit-files 查看开机自启的服务
chkconfig nginx on(2345) systemctl enable nginx 加入开机自启动
chkconfig nginx off systemctl disable nginx 关闭开机自启动
chkconfig --list nginx systemctl is-enabled nginx 查看指定服务是否被开机自启
chkconfig --add nginx systemctl daemon-reload 当我们手写脚本时让系统认识
[root@oldboy ~]# chkconfig --list|grep 3:on   #在c6好用

Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration. If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'. network 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@oldboy ~]# systemctl list-unit-files
autovt@.service enabled
blk-availability.service disabled
brandbot.service static

systemd服务状态

服务状态 状态说明
loaded 服务单元的配置文件已经被处理
active(running) 服务的一个或多个进程在运行中
active(exited) 一次性运行的服务成功被执行并退出(服务运行后完成任务,相关进程会自动退出)
active(waiting) 服务已经运行但在等待某个事件
inactive 服务没有在运行
enable 服务设定为开机运行
disabled 服务设定为开机不运行
static 服务不能被设定开机启动,但可以由其他服务启动该服务

C6 C7的开机启动流程的更多相关文章

  1. Linux系统入门---开机启动流程

    目录 Linux系统入门---开机启动流程 一.centos6 二.systemd管理进程 1.查看级别 三.centos7实践案例: 1.案例1:centos7系统,单用户修改root密码 案例2: ...

  2. Android N 的开机启动流程概述

    原地址:https://blog.csdn.net/h655370/article/details/77727554 图片展示了Android的五层架构,从上到下依次是:应用层,应用框架层,库层,运行 ...

  3. linux系统下开机启动流程

    在了解开机启动流程之前,还是得先了解一些磁盘的基本知识.磁盘主要由盘片,机械手臂,磁头,主轴马达构成.盘片就是存储数据的物理单位了.然后盘片上我们可以分成扇区(sector)和柱面(cylinder) ...

  4. Linux 开机启动流程

    Linux的开机启动流程 1.开机BIOS自检                                             --> 检查CPU,硬盘等硬件信息 2.MBR[Major ...

  5. (转)CentOS 7系统详细开机启动流程和关机流程

    CentOS 7系统详细开机启动流程和关机流程 原文:http://blog.csdn.net/yuesichiu/article/details/51350654 名称 bootup - 系统启动流 ...

  6. Linux的开机启动流程

    Linux的开机启动流程 1.开机BIOS自检                                             --> 检查CPU,硬盘等硬件信息 2.MBR[Major ...

  7. Android的开机启动流程

    1.Android的开机启动流程 Android的层次框架图,如下所示: 图片清晰地展示了Android的五层架构,从上到下依次是:应用层.应用框架层.库层.运行时层以及Linux内核层.Androi ...

  8. android开机启动流程说明

    android开机启动流程说明 第一步:启动linux 1.Bootloader 2.Kernel 第二步android系统启动:入口为init.rc(system\core\rootdir) 1./ ...

  9. Centos 6.x开机启动流程

    Centos 6.x开机启动流程 BIOS(COMS)检查 加载Bios,bios包含所有硬件信息(CPU,内存,硬盘,时钟,鼠标键盘等等) 读MBR 硬盘上第0磁道第一个扇区被称为MBR(maste ...

随机推荐

  1. C语言中static extern的使用

    10:30:22 2019-08-20 基础不牢 瞬间爆炸 参考资料:https://blog.csdn.net/ts_54eagle/article/details/4418627 https:// ...

  2. ALPN(Application Layer Protocol Negotiation)

    ALPN (Application Layer Protocol Negotiation)是TLS的扩展,允许在安全连接的基础上进行应用层协议的协商.ALPN支持任意应用层协议的协商,目前应用最多是H ...

  3. 【前端】HTML总结

    一. HTML介绍:---------------------------------------1. 什么是HTML?   超文本标记语言,  <标签名>--标记(标签.节点)   2. ...

  4. 原来rollup这么简单之插件篇

    大家好,我是小雨小雨,致力于分享有趣的.实用的技术文章. 内容分为翻译和原创,如果有问题,欢迎随时评论或私信,希望和大家一起进步. 大家的支持是我创作的动力. 计划 rollup系列打算一章一章的放出 ...

  5. go 内置函数

    一.什么是内置函数? 二.内置函数有哪些? 名称 说明 close 用于管道通信 len.cap len 用于返回某个类型的长度或数量(字符串.数组.切片.map 和管道):cap 是容量的意思,用于 ...

  6. std::string::append函数

    string& append (const string& str); string& append (const string& str, size_t subpos ...

  7. 如何练习python?有这五个游戏,实操经验就已经够了

    现在学习python的人越来越多了,但仅仅只是学习理论怎么够呢,如何练习python?已经是python初学者比较要学会的技巧了! 其实,最好的实操练习,就是玩游戏. 也许你不会信,但这五个小游戏足够 ...

  8. 深入理解new运算符

    在 JavaScript 中,new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例.创建一个对象很简单,为什么我们还要多此一举使用 new 运算符呢?它到底有什么样的魔力? 认 ...

  9. 移动硬盘临时文件太多怎么办,python黑科技帮你解决

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 星安果 PS:如果想了解更多关于python的应用,可以私信我,或者 ...

  10. CSS属性中的display属性浅谈;

    首先我们要知道什么是块级元素和行内元素有什么区别: 承接上篇文章:(浅谈HTML和body标签) 块级元素:浏览器解析为独占一行的元素(例如:div.table.ul等.),浏览器会在该元素的前后显示 ...