linux下service+命令和直接去执行命令的区别,怎么自己建立一个service启动

Posted 根号5减1除以2

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下service+命令和直接去执行命令的区别,怎么自己建立一个service启动相关的知识,希望对你有一定的参考价值。

  启动一些程序服务的时候,有时候直接去程序的bin目录下去执行命令,有时候利用service启动。

  比如启动mysql服务时,大部分喜欢执行service mysqld start。当然也可以去mysql下执行bin命令带上几个参数什么的。

  那么service是啥呢?linux可以man一下,看出来就是去/etc/init.d下执行了可执行的shell脚本。

   service执行的服务脚本都是在/etc/init.d目录下,各个程序下脚本里执行的命令仍然是在各个bin下。

这样我们也可以在这个目录下写一个shell,模仿这些程序来个。

先写一个简单到爆炸的service启动脚本。  

# cd /etc/init.d

# vi haha     #这个脚本名字叫haha

#!/bin/sh

echo $0=$0     $1=$1  


start(){
  echo ls
  cd ~ && ls 
}

stop(){
  echo ll
  cd ~ && ls -l
}


case "$1" in 

"start")
   start   
;;

"stop")
   stop
;;

esac

 

给这个脚本的执行权限比如 # chmod +x haha

执行这个:

# service haha start 

# service haha stop

可以看到脚本里输出了一下$0,$1

$0=/etc/init.d/haha

$1=start 或者 stop,就是haha脚本的参数

然后start和stop执行了非常简单的命令~

例子就是这样,其他的脚本无非就是去执行了它自己命令包的命令

 

有时间可以分析下这个nginx的service命令方式的脚本:

 

 

 

 

以上是关于linux下service+命令和直接去执行命令的区别,怎么自己建立一个service启动的主要内容,如果未能解决你的问题,请参考以下文章

linux啥命令启服务

service和systemctl的区别

Linux -命令补全和别名

systemctl和service

Linux下, 启动、重启、停止, 服务的命令是多少?

Linux缺少service命令的解决办法