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

Linux中的服务管理

概述

Linux系统可以同时运行数百个任务。其中大多数都属于操作系统环境的组成部分,不过可能也会有那么一两个你不需要的**守护进程**。有3种可用于启动守护进程和服务的工具,Linux发行版支持其中任意一种。传统的SysV系统使用/etc/init.d中的脚本。较新的systemd守护进程除了使用/etc/init.d之外,还用到了systemctl调用。还有些发行版使用的是upstart,配置脚本保存在/etc/init中。systemd如今已经取代了SysVinit系统。upstart是由Ubuntu开发并采用的,但是在14.04版中,已经改成了systemd。

如何确定系统使用的是SysVinit、systemd还是upstart?

ps -p 1 -o cmd

查看一号进程并输出进程启动指令

#ps -p 1 -o cmd
CMD
/usr/lib/systemd/systemd --switched-root --system --deserialize 22

在这里插入图片描述

Linux/Unix系统必须有一个PID为1的初始化进程。该进程会执行fork和exec系统调用,生成其他进程。

系统显然使用的是sysytemd。

有些发行版中,SysVinit程序只是实际的init程序的一个符号链接,而且不管你用的是SysVinit、upstart还是systemd,ps命令输出的总是/sbin/init

 /home/scripts/etl]$ps -p 1 -o cmd
CMD
/sbin/init
/home/scripts/etl]$cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.8 (Santiago)

ps -eaf 查看

ps -eaf | grep upstart
ps -eaf | grep systemd

如果上面的命令返回upstart-udev-bridge或systemd/systemd,则表明系统运行的是upstart或systemd。如果找不到匹配的内容,说明系统可能运行的是SysVinit。

实战演练

大多数发行版都支持service命令。选项-status-all可以输出/etc/int.d中所定义的全部服务的当前状态。
在这里插入图片描述

grep命令筛选输出,只显示处于运行状态的服务

        $ service -status-all | grep running

把不必要的服务都禁止掉。这可以降低系统负载,提高安全性。
需要检查的服务如下。
❏ smbd、nmbd:这两个是Samba守护进程,用于在Linux和Windows系统间共享资源。❏ telnet:这是一个古老的、不安全的登录程序。除非有无法抗拒的需求,否则应该使用SSH。

❏ ftp:另一个同样古老、不安全的文件传输协议。应该用SSH和SCP代替。

❏ rlogin:远程登录。使用SSH要更安全。

❏ rexec:远程执行命令。使用SSH要更安全。

❏ automount:如果你没有用NFS或Samba,就不需要这个。

❏ named:该守护进程提供了域名服务(DNS)。只有在系统定义了域名及其对应的IP地址的情况下才有必要使用该服务。你不需要用它来解析域名和访问网络。

❏ lpd:行式打印机守护进程(Line Printer Daemon)可以让其他主机使用本系统的打印机。如果不打算用作打印服务器,没必要使用该服务。

❏ nfsd:NFS守护进程。允许远程主机挂载本地主机的磁盘分区。如果不是用作文件服务器,可以不使用该服务。

❏ portmap:NFS服务的一部分。如果系统没有启用NFS,可以不使用该服务。

❏ mysql:数据库服务器。Web服务器可能需要用到它。

❏ httpd:HTTP守护进程。有时候是作为Server System软件组的一部分安装的。

禁止无用服务的方法不止一种,这取决于你使用的系统是基于Redhat还是Debian,运行的是systemd、SysV还是upstart。不管使用哪种方法,必须有root权限.

systemctl命令

        systemctl enable SERVICENAME
        systemctl disable SERVICENAME

相关文章:

  • 异步 PHP — 多进程、多线程和协程
  • 适用于90%网剧、网大的最新备案流程解析
  • 在PyG上构建自己的数据集
  • Docker部署Logstash 7.2.0
  • Nginx -- -- 配置SSL证书
  • DID革命:详解PoP、SBT和VC三种去中心化身份方案
  • Redis与Python交互
  • 算法基础: 位运算
  • 记录一次坑 | 包版本不一致产生的问题的排查过程
  • SmartX Everoute 如何通过微分段技术实现 “零信任” | 社区成长营分享回顾
  • “相信美好,即将发生”——天泽智云
  • 面试阿里技术专家岗,对答如流,这些面试题你能答出多少
  • Spring AOP与事务
  • 时序与空间结构
  • 一幅长文细学TypeScript(一)——上手
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • Android单元测试 - 几个重要问题
  • CentOS6 编译安装 redis-3.2.3
  • es6
  • ES6 学习笔记(一)let,const和解构赋值
  • HTTP请求重发
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • Js基础知识(四) - js运行原理与机制
  • js数组之filter
  • js算法-归并排序(merge_sort)
  • JS学习笔记——闭包
  • Linux中的硬链接与软链接
  • Lucene解析 - 基本概念
  • mysql 数据库四种事务隔离级别
  • Python 反序列化安全问题(二)
  • vagrant 添加本地 box 安装 laravel homestead
  • 给第三方使用接口的 URL 签名实现
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 新版博客前端前瞻
  • 新书推荐|Windows黑客编程技术详解
  • 如何用纯 CSS 创作一个货车 loader
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​​​​​​​​​​​​​​Γ函数
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #pragma multi_compile #pragma shader_feature
  • #Ubuntu(修改root信息)
  • (1)STL算法之遍历容器
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (力扣)循环队列的实现与详解(C语言)
  • (万字长文)Spring的核心知识尽揽其中
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (一)为什么要选择C++