1. 程式人生 > >Linux下service xxx start/stop/restart啟動服務、關閉服務、重啟服務深入理解@

Linux下service xxx start/stop/restart啟動服務、關閉服務、重啟服務深入理解@

我們經常使用service xxx start來啟動一個服務,那麼service究竟是執行的是什麼?

實際上service是一個/sbin/下的一個指令碼,名稱為service。服務的絕對路徑為/sbin/service ,開啟這個檔案vim /sbin/service,我們會發現其實它就是一個很普通的shell指令碼,如下

service指令碼主要實現以下兩個功能1.初始化執行環境變數PATH,TERM 和SERVICEDIRPATH=/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;