Linux基础——系统管理

11、Linux系统管理

11.1 Linux中的进程和服务

计算机中,一个正在执行的程序或者命令,被叫做“进程”(process)。

启动后一直存在、常驻内存的进程,一般被称为“服务”

11.2 service服务管理(centos 6版本 了解)
  1. 基本语法

    service 服务名 start | stop | * restart |status

  2. 经验技巧

    守护进程(daemon),linux有很多服务是带有一个.d的结尾。表示的就是当前的服务(进程)是一个守护进程。

    查看服务的方法:/etc/init.d/服务名,发现只有两个服务保留在service

    ls /etc/init.d/ 
    

    image-20220726230639318

  3. 案例实操

    • 查看网络服务的状态

      service network status
      
      image-20220726231203911
    • 停止网络服务

      service network stop
      

      image-20220726231240548

      右上角的网络图标消失了!

    • 启动网络服务

      service network start
      

      image-20220726231320612

      又回来了!

    • 重启网络服务

      service network restart
      
11.3 chkconfig设置后台服务的自启配置(CentOS 6版本 了解)
  1. 基本语法

    指令 描述
    chkconfig 查看所有服务器自启配置
    chkconfig 服务名 off 关掉指定服务的自动启动
    chkconfig 服务名 on 开启自动服务的自动启动
    chkconfig 服务名 --list 查看服务开机启动状态

    image-20220728213606826

  2. 案例实操

    • 开启/关闭network(网络)服务的自动启动

      chkconfig network on
      
      chkconfig network off
      
    • 开启/关闭network服务指定级别的自动启动

      chkconfig --level 指定级别 network on
      chkconfig --level 指定级别 network off
      
11.4systemctl(CentOS 7版本-需掌握)
  1. 基本语法

    systemctl start | stop | restart | status 服务名

  2. 经验技巧

    查看服务的方法:/usr/lib/systemd/system

     ls /usr/lib/systemd/system
    
  3. 实践案例

    开启和关闭网络服务

    systemctl start network
    
    systemctl stop network
    

    查看网络服务的状态

    systemctl status network
    
11.5服务开机启动和防火墙的开启和关闭

防火墙服务的指令操作

1)查看防火墙状态

systemctl status firewalld 
或者
firewall-cmd --state  
# 这两行命令都行,只不过上面的那行命令比较详细

2)关闭防火墙

systemctl stop firewalld

3)开启防火墙

systemctl start firewalld

4)重启防火墙

systemctl restart firewalld

5)开启指定端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 返回success 表示添加成功
# -zone=public 表示作用域为公共的
# -add-port=443/tcp 添加tcp协议的端口端口号为443
# -permanent 永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效

6)查找指定端口

firewall-cmd --query-port=80/tcp

7)开启端口

firewall-cmd --zone=public --remove-port=8080/tcp --permanent

8)关闭指定端口

firewall-cmd --zone=public --remove-port=8080/tcp --permanent
systemctl restart firewalld.service
firewall-cmd --reload

9)查看端口被哪个进程占用

netstat -lnpt |grep 5672
# centos7默认没有 netstat 命令,需要安装 net-tools 工具:
# 安装 net-tools
yum install -y net-tools

10)查看已开启的端口

firewall-cmd --list-ports

开机启动时服务的启用和关闭

1)设置防火墙开机时为启动状态

systemctl enable firewalld.service

2)设置防火墙开机时为禁用(关闭)状态

systemctl disable firewalld.service
11.6 systemctl设置后台服务的自启配置和系统运行级别
1.后台服务自启配置
  1. 基本语法

    指令 描述
    systemctl list-unit-files 查看服务开机启动状态
    systemctl disable service_name 关掉指定服务的自动启动
    systemctl enable service_name 开启服务的自动启动
  2. 实操

    开启/关闭iptables(防火墙)服务的自动启动

    systemctl enable firewalld.service 
    
    systemctl disable firewalld.service
    
2、系统运行级别

Linux有对应的配置图形化界面,在命令行终端,输入setup敲回车即可进入Linux的图形化界面进行配置服务开机自启等操作。

选择系统服务

image-20220727224410627

服务名前面括号里面有*号的即为开机自启服务

是否自启服务:按下空格键可在自启/关闭之间来回切换

如果想要退出的话,按下tab

注意观察的话可以看出来,这里面的服务有两个尖括号标签,也就是服务被分为了两类:

SysV initscritps:老版本的启动脚本,里面只包含了netconsolenetwork

systemd services:Centos 7所有的服务都基于 systemd守护进程

扩展知识:

Linux是基于unix进行的设计和优化。unix对系统服务的管理影响延续到了Linux。unix中有一个非常重要、稳定的版本,他就叫system V(system 5)。在这个版本里面,系统第一个启动的进程是init。接下来init会调用init.d目录下所有的脚本来启动相对应服务的守护进程。

我们在这里说的init进程其实是整个系统在Linux内核初始化之后主动启动的第一个用户进程。之后Linux进程就会根据用户自己定义的系统运行级别来启动不同的服务进程。

这里就涉及到了一个概念:系统运行级别

1)linux运行级别【CentOS 6】,如下图

image-20220726234701984

2)CentOS7的运行级别简化为:

multi-user.target 等价于原运行级别3(多用户有网,无图形界面)

graphical.target 等价于原运行级别5(多用户有网,有图形界面)

3)查看当前运行级别:

systemctl get-default

4)修改当前运行级别

systemctl set-default TARGET.target (这里TARGET取 multi-user 或者 graphical)

init 3 可以进入运行级别3

init 5 可以进入到运行级别5

11.7 关机重启命令

在 linux 领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。

1)基本语法

  • sync 将数据由内存同步到硬盘中

  • halt 停机,关闭系统,但不断电

  • poweroff 关机,断电

  • reboot 就是重启,等同于 shutdown-r now

  • shutdown [选项] 时间

    ​ 表1

    选项 功能
    -H 相当于--halt,停机
    -r -r=reboot 重启

    ​ 表2

    参数 功能
    now 立即关机
    时间 等待多久后关机(时间的单位是分钟)。

2)经验技巧

Linux 系统中为了提高磁盘的读写效率,对磁盘采取了 “预读迟写”操作方式。当用户 保存文件时,Linux 核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓 冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是, 也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导 致数据丢失。使用 sync 指令可以立即将缓冲区的数据写入磁盘。

3)案例实操

  • 将数据由内存同步到硬盘中

    [root@hadoop100 桌面]#sync 
    
  • 重启

    [root@hadoop100 桌面]# reboot 
    
  • 停机(不断电)

    [root@hadoop100 桌面]#halt 
    
  • 计算机将在 1 分钟后关机,并且会显示在登录用户的当前屏幕中

    [root@hadoop100 桌面]#shutdown -h 1 ‘This server will shutdown after 1 mins’ 
    
  • 立马关机(等同于 poweroff)

    [root@hadoop100 桌面]# shutdown -h now 
    
  • 系统立马重启(等同于 reboot)

    [root@hadoop100 桌面]# shutdown -r now
    
posted @ 2022-10-21 08:53  travellerα  阅读(32)  评论(0)    收藏  举报