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. mfc小工具开发之定时闹钟之---多线程急线程同步

    一.MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程.二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环. 工作者线程没有消息机制,通常 ...

  2. 《C语言及程序设计》实践參考——分数的累加

    返回:贺老师课程教学链接  项目要求 [项目1:分数的累加]编程序.输出1/3-3/5+5/7-7/9-+19/21的结果提示:假设直接解决上面的问题有困难.能够设计一条"由易到难" ...

  3. 如何交换a,b的数值——一个简单的问题就证明现在的你依然弱爆了

    How? int c = a; a = b; b = c; 这样会浪费多一点内存去存放c,so还有吗? a ^= b; b ^= a; a ^= b; ^:异或. 答案碉堡了, 不过估计除了有可能在面 ...

  4. 【BZOJ4260】Codechef REBXOR Trie树+贪心

    [BZOJ4260]Codechef REBXOR Description Input 输入数据的第一行包含一个整数N,表示数组中的元素个数. 第二行包含N个整数A1,A2,…,AN. Output ...

  5. SetForegroundWindow以及 如何将一个某个窗口提到最顶层(转)

    http://hi.baidu.com/gookings/item/2b7912ca8d5b3625a0b50aa2 SetForegroundWindow 函数功能:该函数将创建指定窗口的线程设置到 ...

  6. ubuntu搭建java web环境

    java web环境即jdk+tomcat+mysql jdk:http://www.oracle.com/technetwork/java/javase/downloads/index.html t ...

  7. 并发编程7 管道&事件&信号量&进程池(同步和异步方法)

    1,管道 2.事件 3.信号量 4.进程池的介绍&&进程池的map方法&&进程池和多进程的对比 5.进程池的同步方法和异步方法 6.重新解释同步方法和异步方法 7.回调 ...

  8. Spoken English Practice(not always estimating your status in other's hearts. you will lose yourself when you live in other's look. do your best and walk on you own way.)

    绿色:连读:                  红色:略读:               蓝色:浊化:               橙色:弱读     下划线_为浊化 口语蜕变(2017/7/8) 英 ...

  9. Spoken English Practice( let me just pull over(pull,give))

    绿色:连读:                  红色:略读:               蓝色:浊化:               橙色:弱读     下划线_为浊化 口语蜕变(2017/6/26) ...

  10. Linux磁盘管理命令(fdisk,mount,umount,mkfs)

    查看磁盘:fdisk -l 一块磁盘可以分14个分区 [root@wendyhost ~]# fdisk -l Disk /dev/sda: 64.4 GB, 64424509440 bytes 25 ...