linux中注册系统服务—service命令的原理通俗能够使用service命令进行操作的,就是已经注册成为linux的系统服务了。window中也可以注册成为系统服务的办法。
service命令用的次数真不少,就是比较多的关联点,用了很多次了,还是有些地方没打通,云里雾里的。所以才梳理一下这个技术知识点,理顺思路。此时我觉得,很有必要理解service命令的原理性知识了。
了解service命令的来龙去脉,在解决实际问题中的帮助,结合实际应用,我对以下问题有帮助:
1、如果从网上下载一个新的软件,安装到linux上面去。想注册成系统服务,我需要自己编写一个shell脚本文件才行。这个脚本文件如何编写呢?如果不了解servcie命令的机制。会漏掉一些东西了。比如我之前下载的sphinx安装到服务器后。我想使用"service sphinx start"这样的简短命令来管理,就必须注册成为系统服务。而源码包中是没有提供写好的脚本的。必须自己写一个。
知道了来龙去脉,可以减少依赖。像niginx、MySQL我们都可以自己编写供servcie调用的脚本文件。
2、使用chkconfig的先决条件。如果要进一步使用"chkconfig --level 3456 sphinx"来自由控制开启和关闭,那么前提必须实现有供调用的脚本文件(也就是这个服务要是系统服务可以让service调用)
以"为什么要注册成为service服务"的角度来理解,这样做的好处是什么,从这里展开来理解。
把一个程序(比如mysql、apache等)注册成系统服务的好处,通俗点理解我觉得包括两个方面:
1、可以使用"service 服务名称"来进行管理,比如常常使用的命令”service httpd start”,就是httpd注册成为一个服务了,于是才不需要写一大串的原始服务路径。
像sphinx的启动手工方式为:”/data/installsoft/sphinx-for-chinese/bin/searchd –c 配置文件”
将sphinx注册成为系统服务后,就可以像"service sphinx start"来启动。
注:sphinx是一个全文搜索服务。为方便理解,可以换成是mysql、apache也行。
把”service sphinx”看成等价于"/data/installsoft/sphinx-for-chinese/bin/searchd"也可以。
关联要点
要把一个程序注册成系统服务,首先得给出一个供service命令调用的脚本文件放到目录"/etc/rc.d/init.d/"中去。
/etc/rc.d/init.d/这个目录下其实就是很多脚本文件。看下面的截图,就是我服务器上列出的文件(其实都是一些shell脚本文件)
现在疑问:这个脚本文件是一个shell文件,假设要自己编写这个脚本,里面要编写什么样的内容呢?
联想一下常常使用的命令:service httpd start、service httpd stop。
注册成系统服务是方便类似上面这样子调用。那么编写的shell脚本只要处理接受start参数应该干嘛,接收stop参数应该干嘛。
实际上,脚本的内容是完全可以按照自己需要来编写。比如我在管理sphinx的时候。我需要重建索引,直接传递一个reindex参数就可以重建:”service sphinx reindex”。
通俗点的理解方式
我习惯于将”service httpd start” 将httpd理解成目录/etc/rc.d/init.d/下的脚本文件httpd(脚本文件与服务名称是同名的),所以service httpd就是去调用/etc/rc.d/init.d/下的脚本文件httpd。
而后面接着的start,则是向/etc/rc.d/init.d/httpd传递一个start参数。归纳一下如下:
service httpd 等价 /etc/rc.d/init.d/httpd
service httpd start 等价 /etc/rc.d/init.d/httpd start
service httpd stop 等价 /etc/rc.d/init.d/httpd stop
注:httpd是一个shell脚本
具体接到这个start参数该如何处理,你爱干嘛就干嘛,你完全可以停掉服务,也可以启动服务。只是按照我们习惯,都是启动服务。
我一般理解”service httpd start “ 命令执行的时候,会去目录”/etc/rc.d/init.d/”目录下寻找一个httpd的脚本文件。有同名文件,就表示服务存在,没有会提示服务不存在。可以试一下使用一个文件名不存在的服务:service jgj start,看看会提示什么信息。
其实就是jgj这个文件不存在。在这个目录里面创建一个jgj文件,就不会告诉你,服务不存在。所以服务存在的条件是同名文件存在,哈哈。
这个时候不会提示服务不存在,是没有执行权限
增加一下执行权限,chmod +x jgj
这个时候会执行jgj脚本文件里面的命令,里面是什么就执行什么,语法错了就报错。
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