我们经常使用service xxx start来启动一个服务,那么service究竟是执行的是什么?

实际上service是一个/sbin/下的一个脚本,名称为service。服务的绝对路径为/sbin/service ,打开这个文件vim /sbin/service,我们会发现其实它就是一个很普通的shell脚本,如下:

service脚本主要实现以下两个功能
1.初始化执行环境变量PATH,TERM 和SERVICEDIR
PATH=/sbin:/usr/sbin:/bin:/usr/bin
TERM,为显示外设的值,一般为xterm
  SERVICEDIR是/etc/init.d目录

调用/etc/init.d/文件夹下的相应脚本,脚本的参数为service命令第二个及之后的参数
 SERVICEDIR是/etc/init.d目录,也就是实际上是执行了/etc/init.d目录下的脚本程序
以service mysqld restart为例
那么mysqld为/etc/init.d/下面的一个可执行文件,我们可以看到

实际上是运行的/etc/init.d/目录之下的脚本        

    /etc/init.d/目录下发现下面都是shell脚本,脚本里面运行的程序最终还是指向了不同位置譬如/usr/bin等目录下面的程序,    只不过在shell脚本中可能直接对程序的一些运行参数继续进行了设置。

        使用service mysqld start来启动mysql服务

        然后使用 ps aux|grep mysqld来查看服务发现

        可见禅道mysqld服务启动实际是和

     service mysqld start 等于/usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock;


————————————————
版权声明:本文为CSDN博主「King-Long」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011095110/article/details/81020839

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐