在Linux系统中经常会用到类似service mysql start、service tomcat restart等这样的命令,并且这些命令在任务路径下都可以执行,这是怎么做到的呢?要弄明白这个问题,首先需要知道Linux系统中的一个目录/etc/init.d,要弄明白这个目录的作用,在Linux系统中,/etc/init.d这个目录是用来放服务脚本的,当Linux启动时,会寻找这些目录中的服务脚本,/etc/init.d里的shell脚本能够响应start,stop,restart,reload命令来管理某个具体的应用,这些原理似乎可以用来写daemon程序,让某些程序在开关机时运行。举例说明,在Linux系统中新建一个shell脚本start.sh
使用cp命令将脚本复制到/etc/init.d目录下面去掉后缀sh,如图所示:
修改脚本执行权限,然后进入任意目录后执行service start abc,查看脚本执行结果
利用这个特点,可以在这个目录下面编写某些特定服务的启动和停止脚本,来管理某个具体的应用,例如常用的tomcat,mysql,kafka,rabbitmq等。