linux服务管理

简介:

chkconfig

功能:

     检查、设定系统的各种服务。


  说明:

     这个是redhat公司遵循GPL规则所开发的程序,它可以查询操作系统在每一个执行等级(runlevel)中会执行哪些系统服务,其中包括各种常驻服务。


  语法:

       chkconfig [--add][--del][--list][系统服务]或chkconfig[--level<等级代号>][系统服务][on/off/reset]


  参数:  

        --add   新增所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件中增加相关的数据

       --del   删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据

       --level 指定该系统服务要在哪个执行等级中开启或关闭

       --list   列出当前可从chkconfig指令管理的所有系统服务和等级代号

          on/off/reset   在指定的执行登记,开启/关闭/重置该系统服务

  chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。

  chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。

  chkconfig提供一个简单的命令行工具,它可以用来维护/etc/rc[0-6].d目录里面一些符号链接。


常用参数命令的格式及说明:

格式:chkconfig 

格式:chkconfig --list

     列出所有服务的当前启动信息。也就是显示所有运行级系统服务的运行状态信息(on或off

例1.查看在各种不同的执行等级中,各项服务的状况:

    #chkconfig --list


格式:chkconfig --list <service>

     列出指定系统服务<service>的当前启动信息。

例2.列出系统服务vsftpd在各个执行等级的启动情况:

     #chkconfig --list vsftpd


格式:chkconfig <service> on

     将指定服务<service>系统开机时自动启动。


格式:chkconfig <service> off

     将指定服务<service>系统开机时不自动启动。


格式:chkconfig --add name

     增加一项新的服务。


格式:chkconfig --del name

     删除服务,并把相关符号连接从/etc/rc[0-6].d删除。


格式:chkconfig [--level levels] name <on|off|reset>

     设置某一服务在指定的运行级是被启动,停止还是重置。

例3.在执行等级3,5时,关闭vsftpd系统服务:

     #chkconfig --level 35 vsftpd off


拓展知识:

 运行级别:

     那么什么是运行级别呢??

     简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从0到6 ,具有不同的功能。

    不同的运行级定义如下

        0 - 关机(千万不能把initdefault 设置为0 

        1 - 单用户模式   # s init s = init 1

        2 - 多用户,没有 NFS的多用户模式

        3 - 完全多用户模式(标准的运行级) ,不启用图形界面

        4 - 保留级别

        5 - 多用户图形模式

        6 - 重新启动(千万不能把initdefault 设置为6

    这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件,最先运行的服务是放在/etc/rc.d 目录下的文件。在大多数的Linux 发行版本中,启动脚本都是位于 /etc/rc.d/init.d中的。这些脚本被用ln 命令链接到 /etc/rc.d/rc#.d 目录。(这里的# 就是运行级0-6) 


在脚本中定义服务:

   # chkconfig: 2345 20 80

     意思是:该脚本将在运行级别2,3,4,5启动,启动优先级为20,停止优先级为80

扩展知识:

   关于优先级:

  如果启动的脚本或文件(前者)依赖于某个文件(后者);则前者的启动优先级要小于后者的启动优先级别,停止优先级别应大于后者的优先级别。

例4.启动优先级:A依赖于B(A(65) --> B(60))数字越小优先级别越大

      停止优先级:A(60) --> B(70)


应用实例:

例5.写一个简单的服务脚本,名称tserver,使其能够接受chkconfig控制,且在2、3、4和5级别下默认开启;要求:

1) 当传递start参数时,显示“Startingtserver...”;注意,tserver为脚本名,也是服务名,如果脚本名称改变,此处的显示信息也要随之改变;比如,如果脚本名称改为myserver,则显示“Starting myserver”;

2) 当传递stop参数时,显示“Stoppingtserver...

3) 当传递restart参数时,先显示“Stoppingtserver...”,而后显示“Starting tserver...”;

4) 当传递status参数时,根据此前的操作判定此处应该显示的信息;如果此前已经启动,则显示为“Running...”,否则显示为“Stopped...”;

5) 其它任意参数,则显示帮助信息;

注:

1) 建议上述的start、stop和帮助功能以函数实现;

2) 写好后,将此脚本复制进/etc/init.d目录中,并添加为系统服务;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/sh
# chkconfig: 2345 99 60
# description: Test Service
Name=` basename  $0`
File= /var/lock/subsys/ $Name
if  [ $ # -lt 1 ]; then
   echo  "help: $Name {start|restart|stop|status}"
   exit  5
fi
Start(){
  if  [ -e $File ]
then
  echo   "$Name is running"
else
      touch  $File
  echo   "Starting $Name"
fi
}
Stop() {
if  [ -e $File ]
then
      rm  -f $File
      echo   "Stopping $Name"
fi
}
Status(){
if  [ -e $File ] ;  then
  echo  "$Name running."
else
  echo  "$Name stopped."
fi
}
Restart() {
Stop
Start
}
help(){
     echo  "Help: $Name     Parameter {start|restart|stop|status}"
         exit  6
       }
case  $1  in
start)
     Start
     ;;
stop)
     Stop
     ;;
restart)
     Restart
     ;;
status)
     Status
     ;;
*)
         help
         ;;
esac

运行结果:

105633294.png


1
2
cp tserver.sh /etc/init.d/tserver.sh
chkconfig –add tserver.sh


105724187.png




本文转自 z永 51CTO博客,原文链接:http://blog.51cto.com/pangge/1269806


相关文章
|
3月前
|
Linux
在Linux中,怎么把脚本添加到系统服务里,即用 service 来调用?
在Linux中,怎么把脚本添加到系统服务里,即用 service 来调用?
|
4天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
31 3
|
4天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
37 3
|
23天前
|
Ubuntu Linux 网络安全
Linux中服务管理问题
【10月更文挑战第4天】
17 2
|
26天前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
64 0
|
2月前
|
NoSQL Linux Redis
Linux Redis 服务设置开机自启动
【9月更文挑战第2天】在 Linux 系统中,可使用两种方法设置 Redis 开机自启动:一是通过创建 `redis.service` 文件并利用 systemd 进行管理,包括定义服务参数和启动脚本;二是编辑 `/etc/rc.local` 文件,在其中添加启动命令。推荐使用 systemd 方法,因为它更符合现代 Linux 系统的设计理念。设置完成后,可通过 `sudo systemctl status redis.service` 检查服务状态。
234 3
|
2月前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
|
3月前
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
|
3月前
|
监控 安全 Linux
在Linux中,如何配置VPN服务?
在Linux中,如何配置VPN服务?
|
3月前
|
Ubuntu Linux 应用服务中间件
在Linux中,如何启动、停止或重启服务?
在Linux中,如何启动、停止或重启服务?