linux 添加 service 服务并自动添加 chkconfig 启动级别

简介:

下面以添加一个叫做watchcat的服务为例进行说明:

1、写一个提供给service命令使用的脚本

service 命令的使用方法一般如下

启动:

$ service watchcat start

停止:

$ service watchcat stop

重启:

$ service watchcat restart

所以这个watchcat脚本就需要至少接受这三个命令

大概如下:$ cat watchcat

  View Code

注:这个脚本不是最终脚本,还不能作为服务使用

2、还需要让这个脚本被 chkconfig 支持

其实这个很重要,那就是在刚刚的脚本上面添加几行注释,这几行只是是用来给chkconfig使用的。也就是说,当chkconfig 看到这几行注释的时候,它是不会把这几行当做注释的。

完整的脚本如下:

复制代码
 1 #!/bin/bash
 2 #
 3 # watchcat    start/stop cats
 4 #
 5 # chkconfig: 12345 80 90
 6 # description: start/stop cats
 7 #
 8 ### BEGIN INIT INFO
 9 # Description: start/stop cats
10 ### END INIT INFO
11 
12 function start_cat()
13 {
14     echo "cat run ..."
15 }
16 
17 function stop_cat()
18 {
19     echo "cat stop ..."
20 }
21 
22 case "$1" in
23     start)
24     start_cat
25     ;;  
26 
27     stop)
28     stop_cat
29     ;;  
30 
31     restart)
32     stop_cat
33     start_cat
34     ;;
35     *)
36     echo "Usage : start | stop | restart"
37     ;;
38 esac
复制代码

现在这个脚本算是可以正式使用了。

上面代码的第5行是必须的,这是给chkconfig看的。

第5 行的12345是表示这个watchcat 程序是需要在系统的运行级别为1、2、3、4、5的时候都进行启动的。80和90 的意思是在rc1.d/~rc5.d/目录下建立S80xxxxx和K90xxxxx的链接文件的。

3、配置watchcat的service支持

首先给watchcat添加可执行权限:

$ chmod 775 watchcat

把脚本添加复制到/etc/init.d/目录下

复制代码
$ cp watchcat /etc/init.d/
cp: cannot create regular file `/etc/init.d/watchcat': Permission denied
$ sudo cp watchcat /etc/init.d/
复制代码

此时就可以使用service进行控制了,如下:

复制代码
$ service watchcat start
cat run ...
$ service watchcat stop
cat stop ...
复制代码

4、然并卵,这只是完成了手动控制的阶段,还需要开机启动

复制代码
先查看一下:
$ chkconfig --list watchcat service watchcat supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add watchcat')
说我们没有添加这个叫watchcat的服务,所以进行添加: $ chkconfig
--add watchcat You do not have enough privileges to perform this operation. $ sudo chkconfig --add watchcat
检查添加后的结果:
$ chkconfig --list watchcat watchcat 0:off 1:on 2:on 3:on 4:on 5:on 6:off
复制代码

这样就完成了。



本文转自郝峰波博客园博客,原文链接:http://www.cnblogs.com/fengbohello/p/4919925.html,如需转载请自行联系原作者


相关文章
|
15天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
38 5
linux系统服务二!
|
15天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
37 3
linux系统服务!!!
|
19天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
87 3
|
19天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
64 3
|
1月前
|
Ubuntu Linux 网络安全
Linux中服务管理问题
【10月更文挑战第4天】
25 2
|
1月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
72 0
|
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)。
|
Oracle 关系型数据库 MySQL
linux service命令常见使用方法
service命令,顾名思义,就是用于管理Linux操作系统中服务的命令。 1. 声明:这个命令不是在所有的linux发行版本中都有。主要是在redhat、fedora、mandriva和centos中。
1310 0
|
5天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
22 3
|
5天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
17 2