Linux独立服务管理

启动服务

systemctl start 服务名称.service

设置开机自启动

systemctl enable 服务名称.service

停止开机自启动

systemctl disable 服务名称.service

查看服务当前状态

systemctl status 服务名称.service

重新启动服务

systemctl restart 服务名称.service

查看所有已启动的服务

systemctl list-units --type=service

Linux基于xinetd服务的管理

从守护进程的概念可以看出,对于系统所要管理的每一种服务,都必须运行一个监听某个端口连接所发生的守护进程,这意味着资源浪费。为了解决这个问题,Linux引进了"网络守护进程服务程序"的概念。也就是xinted(extended internet daemon)。xinetd能够同时监听多个指定的端口,在接受用户请求时,它能够根据用户请求的端口的不同,启动不同的网络服务进程来处理这些用户请求。可以把xinetd看做一个管理启动服务的管理服务器,它决定把一个客户请求交给哪个程序处理,然后启动相应的守护进程。xinetd无时不在运行并监听它所管理的所有端口上的服务。当某个要连接它管理的某项服务的请求到达时,xinetd就会为该服务启动合适的服务器。

Xinetd托管服务

Xinetd 托管服务。又名:超级守护进程,可以把一些小服务放到xinetd里进行托管。拖管后的好处就是可以使用xinetd强大的参数来控制这些服务,并且增强安全性。(比如一个小服务没有一些控制功能,但支持xinetd拖管,你就可以拖管并使用xinetd的参数来控制它)。

以sshd为例,把sshd拖管到xinetd下,sshd服务也有配置文件,为/etc/ssh/sshd_config;但此配置文件功能有限,可以选择拖管sshd服务,来实现额外的功能。

托管前先关闭ssh本身提供的服务

#关闭ssh服务
[root@localhost ~]# systemctl stop sshd.service
#设置为开机不启动(注意:如果你关闭xinetd之后,需要把ssh服务重新启动,不然你不能通过ssh远程连接)
[root@localhost ~]# systemctl disable sshd.service

开始配置ssh被xinetd托管,默认是没有这个文件的,需要创建。

[root@localhost ~]#vim  /etc/xinetd.d/ssh

编辑内容:

# 代表被托管服务的名称
service ssh
{
# 是否禁用托管服务,no表示开启托管服务
disable = no
# 设置失败时,UID添加到系统登记表
log_on_failure += USERID
# socket连接方式,这个是属于本地方式,对ssh无效
socket_type = stream
# 设置服务启动时需要的参数
server_args = --daemon
# 每秒25个入站连接,如果超过限制,则等待30秒。主要用于对付拒绝服务***
cps =
# 代表ssh走的是tcp协议连接
protocol = tcp
# 是否并发,这个参数对ssh无效
wait = no
# 以什么用户进行启动
user = root
# 被托管服务的启动脚本
server = /usr/sbin/sshd
# 启动脚本的参数
server_args = -i
}

重新启动xinetd服务

[root@localhost ~]# systemctl  restart  xinetd.service
#查看ssh是否被托管
[root@localhost ~]# lsof -i:

查看22端口的进程,由sshd变为了xinetd就表示你拖管成功了

可以对ssh 添加对IP或网段的访问控制功能,这个是ssh服务本身不具备的功能(除非写iptables)

[root@localhost ~]#vim  /etc/xinetd.d/ssh

添加对IP或网段的访问控制功能

# 代表被托管服务的名称
service ssh
{
# 是否禁用托管服务,no表示开启托管服务
disable = no
# 设置失败时,UID添加到系统登记表
log_on_failure += USERID
# socket连接方式,这个是属于本地方式,对ssh无效
socket_type = stream
# 设置服务启动时需要的参数
server_args = --daemon
# 每秒25个入站连接,如果超过限制,则等待30秒。主要用于对付拒绝服务***
cps =
# 代表ssh走的是tcp协议连接
protocol = tcp
# 是否并发,这个参数对ssh无效
wait = no
# 以什么用户进行启动
user = root
# 被托管服务的启动脚本
server = /usr/sbin/sshd
# 启动脚本的参数
server_args = -i
# 表示允许1网段访问
only_from = 192.168.1.0/
# 表示只能1网段访问,但1网段里的20和200这两IP不能访问
no_access = 192.168.1.20 192.168.1.200
# 最大连接数为3
instances =
# 每个源IP只能有1个连接
per_source =
# 只能9:00到18:00才能ssh连接
access_times = :-:
# 指定日志记录到/var/log/xinetd_ssh.log里
log_type = file /var/log/xinetd_ssh.log
# 指定ssh的连接端口为7722
port =
}

添加完成后重新启动xinetd服务

Linux源码包服务管理

源码包服务中所有的文件都会安装到指定目录当中,所以服务的管理脚本程序也会安装到指定目录中。源码包服务的启动管理方式就是在服务的安装目录中找到管理脚本,然后执行这个脚本。我们可以査看每个服务的说明文档 (一般是 INSTALL 或 READEM),在这个说明文档中会明确地告诉大家服务的启动脚本是哪个文件。

源码包服务被服务管理命令识别

在默认情况下,源码包服务是不能被系统的服务管理命令所识别和管理的,但是如果我们做一些设定,则也是可以让源码包服务被系统的服务管理命令所识别和管理的。

Centos 系统服务脚本目录 /usr/lib/systemd/ 下有系统(system)和用户(user)之分。如需要开机没有登陆情况下就能运行的程序,则保存在系统服务 /usr/lib/systemd/system/下,如果需要用户登录后才能运行的程序,则保存在用户/usr/lib/systemd/user/ 下。服务以.service结尾。

这边以mysql 为例:

1.建立服务文件

[root@localhost ~]# vim /lib/systemd/system/mysql.service 

编辑内容如下:

[Unit]
Description=mysql
After=network.target remote-fs.target nss-lookup.target [Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
#ExecReload=/usr/local/mysql/support-files/mysql.server restart
#ExecStop=/usr/local/mysql/support-files/mysql.server stop
#PrivateTmp=true [Install]
WantedBy=multi-user.target

说明:

  • [Unit]:服务的说明
  • Description:描述服务
  • After:描述服务类别
  • [Service]服务运行参数的设置
  • Type=forking是后台运行的形式
  • ExecStart为服务的具体运行命令
  • ExecReload为重启命令
  • ExecStop为停止命令
  • PrivateTmp=True表示给服务分配独立的临时空间
  • [Install]服务安装的相关设置,可设置为多用户

注意:[Service]的启动、重启、停止命令全部要求使用绝对路径

把服务添加到linux系统的自启动服务列表中去,使用命令:

[root@localhost ~]# systemctl enable mysql.service

查看是否添加成功,使用命令:

[root@localhost ~]# systemctl status mysql.service

Linux系统服务管理 服务管理的更多相关文章

  1. Linux服务器,服务管理--systemctl命令详解,设置开机自启动

    Linux服务器,服务管理--systemctl命令详解,设置开机自启动 syetemclt就是service和chkconfig这两个命令的整合,在CentOS 7就开始被使用了. 摘要: syst ...

  2. Linux软件安装——服务管理的命令

    Linux软件安装——服务管理的命令 摘要:本文主要学习了Linux系统中服务管理的命令. service命令 service命令用于对系统服务进行管理,比如启动(start).停止(stop).重启 ...

  3. Linux软件安装——服务管理

    Linux软件安装——服务管理 摘要:本文主要学习了Linux中有关服务管理的知识. 什么是服务 服务一般是放置在后台运行的一个或多个进分程,为用户或系统提供某项特定的服务,有些是系统服务,有些则是独 ...

  4. linux 学习 12 服务管理

      第十二讲 Linux服务管理 12.1 Linux服务管理-服务分类 ——Linux服务 ----RPM包默认安装的服务 ————独立的服务 ————基于xinetd服务 ----源码包安装的服务 ...

  5. Linux基础四(服务管理)

    目录 一.简介与分类 1.系统的默认运行级别 2.服务的分类 3.服务与端口 二.服务管理 1.RPM包服务管理 2.源码包服务管理 三.服务管理总结 一.简介与分类 1. 系统的运行级别 1.1 默 ...

  6. Linux中的服务管理

    RPM包默认安装的服务 查看已安装的服务: chkconfig --list 默认安装位置: /etc/init.d 启动脚本 /etc/sysconfig 初始化环境配置文件 /etc  配置文件位 ...

  7. Linux记录-mysql服务管理shell实现

    #!/bin/bash menu() { echo "---欢迎使用mysql管理服务程序---" echo "# 1.启动服务" echo "# 2 ...

  8. linux服务管理 服务管理

    系统的运行级别 运行级别 0 关机(不能设置) 1 单用户模式,类似windows的安全模式 2 不完全的命令行模式,不含NFS服务(文件共享的服务) 3 完全的命令行模式,就是标准字符界面 4 系统 ...

  9. Linux服务管理 systemctl命令详解

    Linux服务器,服务管理--systemctl命令详解,设置开机自启动 syetemclt就是service和chkconfig这两个命令的整合     任务 旧指令 新指令 使某服务自动启动 ch ...

随机推荐

  1. 要生成一个窗口,通常使用Window的子类Frame类进行实例化

    要生成一个窗口,通常使用Window的子类Frame类进行实例化,而不是直接使用Window 类,框架的外观就像平常Windows系统下的窗口,有标题.边框. 菜单 和大小等. setSize()方法 ...

  2. Sublime Text 加入右键菜单

    Sublime Text 2 是现在很受大家欢迎的编辑器了,不仅是在web前端,在书定简单的php.Js等代码时,也是相当的好用,再配合多种的插件和新颖的界面,更是让人欲罢不能. 在使用时,我们通过喜 ...

  3. 第6步:检查grid安装环境

    6.1 检查系统包 grid 身份下校验安装环境(检测crs安装环境(sgdb1)) [root@node1 soft]#su – grid [grid@node1 ~]$ cd /soft/grid ...

  4. 笔记:C语言图形基本函数及实例五子棋游戏

    初始化图形界面 int gdriver; int gmode; gdriver = DETECT; initgraph(&gdriver,&gmode,"" ); ...

  5. boost::interprocess(2)

    //doc_anonymous_mutex_shared_data.hpp #include <boost/interprocess/sync/interprocess_mutex.hpp> ...

  6. HTTP错误 401.3

    这是在搭建ASP.NET运行环境时出现的错误,在开启了系统的IIS Web服务器,并安装完.NET FrameWork后, 输入网址:http://127.0.0.1  ,有时会出现401.3的错误, ...

  7. JZOJ.5279【NOIP2017模拟8.15】香港记者

    Description

  8. InetAddress类和InetSocketAddress的使用

    一简介 InetAddress是Java对IP地址的封装,代表互联网协议(IP)地址:InetAddress对象的获取只能通过静态方法,比如根据主机名获取主机的ip地址封装对象: ? 1 InetAd ...

  9. Linux ping不通百度的解决方法

    今天在学习DNS的时候遇到了一个问题,我的虚拟机能够ping通ip地址,却ping不通www.baidu.com www.qq.com等域名,先是出现了以下报错: 折腾了几个小时终于找到解决办法 1. ...

  10. 第三课作业——set类型、sorted set类型的增删改查,redis的事务

    第三课时作业 静哥 by 2016.2.23~2016.3.6   [作业描述] 1.总结什么是set以及什么是sorted set,并完成对set以及sorted set的增删改查(查需要至少4种方 ...