版权声明:本文为博主原创文章,欢迎转载。 https://blog.csdn.net/u011095110/article/details/81020839
我们经常使用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目录
2.调用/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;
扫描二维码关注公众号,回复:
3363008 查看本文章