1. 服务的分类

Linux服务可分为RPM包默认安装的服务和源码包安装的服务。前者可细分为独立的服务(直接作用于内存中)和基于xinetd服务。xinetd本身是独立的服务,其唯一的功能是管理其他服务。优点是管理的服务不占用内存,缺点是响应缓慢。

(1) 启动和自启动

服务启动就是在当前系统中让服务运行,并提供其功能。服务的自启动是指让服务在系统开机或重启之后,随着系统的启动而自动启动服务。

(2) 查询已安装的服务

RPM包安装的服务可通过chkconfig --list命令查看,其作用是查看服务自启动状态。该命令可以看到所有RPM包安装的服务,但看不到源码包安装的服务。

[root@localhost sh]# chkconfig --list
abrt-ccpp :off :off :off :on :off :on :off
abrtd :off :off :off :on :off :on :off
......

通过查看服务安装位置(一般在/usr/local目录下),可以查看源码包安装的服务。与RPM包安装的服务的区别在于,源码包安装在指定位置,而RPM包安装在默认位置下。

2.  独立服务的管理

RPM包安装的默认位置一般为:

/etc/init.d/-----启动脚本位置

/etc/sysconfig/-----初始化环境配置文件的位置

/etc/-----配置文件的位置

/etc/xinetd.con-----xinetd配置文件

/etc/xinetd.d/-----基于xinetd服务的启动脚本

/var/lib/-----服务产生的数据放在这里

/var/log/-----日志

(1) 独立服务的启动方法有两种:

()/etc/init.d/独立服务名 start|stop|restart|status
#查询apache的状态
[root@localhost sh]# /etc/init.d/httpd status
httpd (pid ) is running... ()service 独立服务名 start|stop|restart|status
#重启apache
[root@localhost sh]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
[ OK ]

注:service命令是红帽专有命令,其他的unix系统中的服务操作可使用第一种方法执行。其次,service --status-all命令可以列出所有的RPM包安装服务的状态。

(2) 独立服务的自启动

可以通过三种方法来实现,推荐使用第二种方法。

① chkconfig [--level 运行级别] [独立服务名] [on|off]

例:设置apache自启动

[root@localhost sh]# chkconfig --list | grep httpd
httpd :off :off :off :off :off :off :off
[root@localhost sh]# chkconfig --level httpd on
[root@localhost sh]# chkconfig --list | grep httpd
httpd :off :off :on :on :on :on :off

② 修改/etc/rc.local文件,开机时输入账号之前,将会检查该文件,从而实现自启动。

例:在该文件中设置apache服务

[root@localhost sh]# vim /etc/rc.local
#!/bin/sh # 每次启动时,修改该文件的时间,因此可以查询系统的启动时间
touch /var/lock/subsys/local # apache自启动
/etc/rc.d/init.d/httpd start

③ 使用ntsysv命令管理自启动(红帽专有)

ntsysv 1.3.49.3 - (C) - Red Hat, Inc.

               ┌──────────────────┤ Services ├──────────────────┐
│ │
│ What services should be automatically started? │
│ │
│ [*] abrt-ccpp ↑ │
│ [*] abrtd ▮ │
│ [*] acpid ▒ │
│ [*] atd ▒ │
│ [*] auditd ▒ │
│ [*] autofs ▒ │
│ [*] blk-availability ▒ │
│ [*] certmonger ↓ │
│ │
│ ┌────┐ ┌────────┐ │
│ │ Ok │ │ Cancel │ │
│ └────┘ └────────┘ │
│ │
│ │
└────────────────────────────────────────────────┘

该命令的好处是不仅可以设置独立服务,也可以管理xinetd服务。

3. 基于xinetd服务的管理

除了不安全的telnet仍在使用xinetd服务进行管理,基于xinetd服务的使用越来越少,因此了解即可。

(1) 安装xinetd和telnet

[root@localhost sh]# yum -y install xinetd
[root@localhost sh]# yum -y install telnet-server
...
[root@localhost sh]# chkconfig --list
......
xinetd :off :off :off :on :on :on :off xinetd based services:
chargen-dgram: off
   rsync: off
telnet: off
......

当用户访问rsync服务时,将先访问xinetd服务,然后xinetd服务调用rsync服务,rsync服务响应xinetd服务,再由xinetd响应客户端。

(2) xinetd服务的启动

启动telnet。将/etc/xinetd.d/telnet 中的"didable=yes"改为"disable=no"即可,随后重启xinetd服务。查看23端口存在时,telnet服务就启动了。

[root@localhost sh]# vim /etc/xinetd.d/telnet
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet #服务的名称为telnet
{
disable = no #服务不启动
flags = REUSE # 标志位REUSE,设定TCP/IP socket重用
socket_type = stream #使用TCP协议数据包
wait = no #允许多个连接同时连接
user = root #启动服务的用户为root
server = /usr/sbin/in.telnetd #服务的请程序
log_on_failure += USERID #登录失败后,记录用户的ID
} [root@localhost sh]# service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
[root@localhost sh]# netstat -tlun | grep
tcp ::: :::* LISTEN

(3) xinetd服务的自启动

注意:xinetd服务的启动和自启动是通用的,即执行了启动,意味着自启动也执行了。

# () chkconfig telnet on|off
[root@localhost sh]# chkconfig telnet off
[root@localhost sh]# netstat -tlun | grep # () ntsysv

4. 源码包安装服务的管理

(1) 源码包安装服务的启动

使用绝对路径,调用启动脚本来启动。不同的源码包的启动脚本不同。可以查看源码包的安装说明,来查看启动脚本的方法。

例:启动Apache服务的方法:

/usr/local/apache2/bin/apachectl start|stop

再次使用RPM包安装的apache时,将显示80端口冲突额错误。

(2) 源码包服务的自启动

vi /etc/rc.d/rc.local

/usr/local/apache2/bin/apachectl start

  (3) 让源码包服务被服务管理命令识别

  让源码包的apache服务能被service命令管理启动

ln –s /usr/local/apache2/bin/apachectl /etc/init.d/apache  

  让源码包的apache服务能被chkconfig与ntsysv命令管理自启动

vi /etc/init.d/apache

  #指定httpd脚本可以被chkconfig命令管理,格式为chkconfig: 运行级别 启动顺序 关闭顺序

  # 不能与现有的脚本的启动顺序与关闭顺序冲突

  # chkconfig:  

  # 说明,内容随意

  # description: source package apache    

  然后执行:chkconfig –add apache

  注意:不建议进行这样的操作,容易混淆

Linux学习笔记(19) Linux服务管理的更多相关文章

  1. [转帖]Linux学习笔记之rpm包管理功能全解

    Linux学习笔记之rpm包管理功能全解 https://www.cnblogs.com/JetpropelledSnake/p/11177277.html rpm 的管理命令 之前学习过 yum 的 ...

  2. linux学习笔记2 - linux常用命令

    转载请标注原链接:http://www.cnblogs.com/xczyd/p/5543731.html 第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装lin ...

  3. linux学习笔记--程序与进程管理

    .工作管理 1.前台程序放后台程序  命令后 加  & 2.任务执行时将前台任务任务放到后台中并[暂停]  ctr + z 3.jobs 观察后台工作状态 及多少任务在执行,可以通过 help ...

  4. Linux学习笔记(20) Linux系统管理

    1.进程管理 进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源. 进程管理的作用有判断服务器健康状态.查看系统中所有进程及杀死进程.一般都可以采用 ...

  5. Linux学习笔记之Linux相关知识

    [想成为某一方面的大神,没有捷径可走,只能不断的记录.练习.总结.coding……] notes:主要从网上摘录了一些关于Linux的历史以及一些相关内容,以便对Linux系统有一定的了解.这不但可以 ...

  6. Linux学习笔记之Linux启动引导过程

    早期时,启动一台计算机意味着要给计算机喂一条包含引导程序的纸带,或者手工使用前端面板地址/数据/控制开关来加载引导程序.尽管目前的计算机已经装备了很多工具来简化引导过程,但是这一切并没有对整个过程进行 ...

  7. Linux学习笔记之Linux第一课-基本介绍

    Linux简介 Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux是一套免费使用和自由传播的类Unix操作系统,是一个基 ...

  8. Linux学习笔记19-ssh远程管理

    远程管理 服务器一般运行在IDC机房中,一般都是通过远程管理方式对服务器进程控制. 常见的远程管理工具: RDP(remote desktop protocol)协议,window远程桌面管理 Tel ...

  9. Linux学习笔记(21) Linux日志管理

    1. 简介 (1) 日志服务 在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日志文件的格式 ...

随机推荐

  1. CXGrid的使用技巧

    CXGrid的使用技巧 ========================================================================== 在主从TableView中 ...

  2. BlacJack游戏

    首先游戏的简介如下:                                                                                      Blac ...

  3. 【leetcode】Excel Sheet Column Title & Excel Sheet Column Number (easy)

    Given a positive integer, return its corresponding column title as appear in an Excel sheet. For exa ...

  4. 【python】类变量和对象变量

    来源:http://www.cnblogs.com/gtarcoder/p/5005897.html python是一种解释性的语言,任何变量可以在使用的时候才声明以及定义,也可以在程序运行的任何位置 ...

  5. codeforces gym 100286 H - Hell on the Markets (贪心算法)

    题目链接 题意:n个数分别为a[i],问是否存在一组对应的b[i],b[i]=1 || b[i]=-1,使得ai*bi的n项和为0. 题解: 先证明一个结论吧,对于1≤ai≤i+1,前面ai个数一定可 ...

  6. 会话控制(session、cookie)

    1.session(1)session存储在服务器的(2)session每个人存一份(3)session有默认的过期时间(4)session里面可以存储任意类型的数据安全,对服务造成压力用法:1.当一 ...

  7. August 16th 2016 Week 34th Tuesday

    The worst solitude is to be destitute of sincere friendship. 最大的孤独莫过于没有真诚的友谊. Sometimes we pay the m ...

  8. python 获取启动参数

    pytho软件编写过程中,会经常使用带参数的启动脚本,这里记载下如何获取输入的参数. 使用sys.argv可获取启动时输入的所有参数,这个是数组,直接使用[]就可以获取,[0]代表的是启动文件时输入的 ...

  9. LTS学习

    下载 例子 安装部署zookeeper 运行根目录下的sh build.sh或build.cmd脚本 --> 会在dist目录下生成lts-{version}-bin文件夹(bin里有启动命令) ...

  10. 字符匹配算法之KMP

    KMP算法的精华在于从前往后,逐步循环地向前滑动搜索词,来最大限度地减少重复匹配次数,以达到提高效率的目的. 移动位数=已匹配字符数-最后一个匹配字符所对应搜索词的位置[从1开始]. 更加详细且具体的 ...