当前位置: 首页 > news >正文

LINUX基础培训十之服务管理

前言、本章学习目标 
  1. 了解LINUX中的服务种类
  2. 了解LINUX中常见服务的端口
  3. 熟悉服务的日常管理
  4. 掌握添加自定义服务

一、Linux系统服务含义及其分类

系统服务是在后台运行的应用程序,并且可以提供一些本地系统或网络的功能。我们把这些应用程序称作服务,也就是 Service。不过,我们有时会看到 Daemon 的叫法,Daemon 的英文原意是"守护神",在这里是"守护进程"的意思。

守护进程就是为了实现服务、功能的进程。比如,我们的 apache 服务就是服务(Service),它是用来实现 Web 服务的。那么,启动 apache 服务的进程是哪个进程呢?就是 httpd 这个守护进程(Daemon)。也就是说,守护进程就是服务在后台运行的真实进程。

服务的分类
独立的服务:就是独立启动的意思,这种服务可以自行启动,而不用依赖其他的管理服务。因为不依赖其他的管理服务,所以,当客户端请求访问时,独立的服务响应请求更快速。目前,Linux 中的大多数服务都是独立的服务,如 apache 服务、FTP 服务、Samba 服务等。
基于 xinetd 的服务:这种服务就不能独立启动了,而要依靠管理服务来调用。这个负责管理的服务就是 xinetd 服务。

二、Linux系统服务常见端口

计算机中的协议主要分为两大类:
面向连接的可靠的TCP协议(Transmission Control Protocol,传输控制协议);
面向无连接的不可靠的UDP协议(User Datagram Protocol,用户数据报协议);

这两种协议都支持  65535 个端口。这么多端口怎么记忆呢?系统给我们提供了服务与端口的对应文件 /etc/services。

 

三、Linux系统服务管理

1) 使用/etc/init.d/目录中的启动脚本来管理独立的服务
命令格式如下:
[root@localhost ~]#/etc/init.d独立服务名 start| stop|status|restart|...
参数:
start:启动服务;stop:停止服务;status:查看服务状态;restart:重启动服务;

2) 使用service命令来管理独立的服务
我们还可以依赖 service 命令来启动独立的服务。service 命令实际上只是一个脚本,这个脚本仍然需要调用 /etc/init.d/ 中的启动脚本来启动独立的服务。
命令格式如下:service  XXX  start| stop|status|restart|...

3)使用systemctl命令来管理独立的服务
systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。systemd对应的进程管理命令是systemctl。
命令格式如下:systemctl   start| stop|status|restart|...  XXX

四、Linux系统服务自启动管理

1)  使用 chkconfig 服务自启动管理命令
[root@localhost ~]# chkconfig --list | grep httpd
httpd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
#查询httpd的自启动状态。所有的级别都是不自启动的
[root@localhost ~]# chkconfig --level 2345 httpd on
#设置apache服务在进入2、3、4、5级别时自启动

2) 修改 /etc/rc.d/rc.local 文件,设置服务自启动
修改 /etc/rc.d/rc.local 文件,在文件中加入服务的启动命令,注意rc.local需要有执行权限


3) systemctl修改服务自启动
例如:systemclt enable  httpd.service

五、Linux系统常见服务的类别及功能

在生产服务器上,安装完 Linux 之后有一步重要的工作,就是服务优化。也就是关闭不需要的服务,只开启需要的服务。因为服务启动得越多,占用的系统资源就越多,而且被攻击的可能性也増加了。如果要进行服务优化,就需要知道这些服务都有什么作用。

 六、添加自定义服务

这里已systemd为例:
官方手册参考https://www.freedesktop.org/software/systemd/man/systemd.service.html
自定义服务:
在 /usr/lib/systemd/system 下新建服务脚本
vim /usr/lib/systemd/system/test.service

[Unit]
Description=test date-time script
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/opt/test.sh

[Install]
WantedBy=multi-user.target

# systemctl daemon-reload  #重新加载一下
# systemctl start test.service  #开启服务
# systemctl enable test  #设置成开机自启
# systemctl is-enabled test  #检查是否是开机自启 

七、本章实验

1、部署ftp服务,安装、启动、启用ftp服务
2、将自定义nginx服务设置成开机自启动服务。

相关文章:

  • C++ 编程需要什么样的开发环境?
  • UFW防火墙详解
  • 学习JavaEE的日子 day13 封装 static private this 类加载机制
  • 超优秀的三维模型优化平台(轻量化、格式转换、可视化等)
  • 360勒索病毒:了解最新变种.360,以及如何保护您的数据
  • 白山云基于StarRocks数据库构建湖仓一体数仓的实践
  • Git将某个文件合并到指定分支
  • 【MySQL】权限控制
  • Bitcoin的Covenants——合同化管理UTXO的花费方式
  • MOJO语言的诞生
  • 【DFS】200.岛屿数量
  • 常用的git diff命令用法汇总和示例
  • 如何绘制出图像的色素分布直方图
  • 【python 的各种模块】(9) 在python使用PIL( 即pillow模块 ) 修改图片
  • Python 语法糖
  • $translatePartialLoader加载失败及解决方式
  • create-react-app项目添加less配置
  • CSS 专业技巧
  • CSS相对定位
  • go语言学习初探(一)
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • jQuery(一)
  • Rancher如何对接Ceph-RBD块存储
  • 阿里云应用高可用服务公测发布
  • 编写高质量JavaScript代码之并发
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 服务器从安装到部署全过程(二)
  • 前端
  • 前端临床手札——文件上传
  • 如何优雅地使用 Sublime Text
  • 时间复杂度与空间复杂度分析
  • 责任链模式的两种实现
  • 关于Android全面屏虚拟导航栏的适配总结
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • # centos7下FFmpeg环境部署记录
  • # 计算机视觉入门
  • # 数据结构
  • #define、const、typedef的差别
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (C语言)逆序输出字符串
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (第一天)包装对象、作用域、创建对象
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (理论篇)httpmoudle和httphandler一览
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • 、写入Shellcode到注册表上线
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CF命令行调试器MDbg入门(一)
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖