启动一些程序服务的时候,有时候直接去程序的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命令方式的脚本:
时间: 2024-12-22 11:00:10