shell之最常用的服務指令碼

不該相遇在秋天發表於2017-12-16

 

任務需求:以最簡單的方式管理 /usr/local/php7/sbin/php-fpm -c /usr/local/php7/etc/php.ini 這條命令 包括啟動停止重啟

使用技術:shell指令碼 chkconfig服務管理

實現流程:

1.在 /etc/init.d 目錄下建立shell指令碼

vim /etc/init.d/php-fpm

2.寫入指令碼(寫在部落格上就手動新增了很多註釋 非常全面  所有中文註釋行刪除掉才是指令碼內容)

#!/bin/bash
#指定執行shell

# chkconfig: - 85 15
#指定執行級別 -代表預設2345 85和15代表啟動優先權和關閉優先權 值越小越優先

# processname:php-fpm
#指定服務名稱

#定義變數
phpfpm=/usr/local/php7/sbin/php-fpm
phpini=/usr/local/php7/etc/php.ini
fpmpid=$(ps -ef | grep php-fpm | grep -v 'color' | grep -v 'pts' | awk '{print $2}')
#抓取php-fpm程式 排除帶有color的行和帶有pts的行 再進行抓取第二列  獲取出來的是多列pid號

start(){
  if [ -z "$fpmpid" ]; then
  #如果fpmpid是空  如果判斷非空用 -n
  
  $phpfpm -c $phpini
  #那麼就執行這條命令: /usr/local/php7/sbin/php-fpm -c /usr/local/php7/etc/php.ini
  
  fi
  echo 'php-fpm starting...'
}

stop(){
  if [ -z "$fpmpid" ]; then
  #如果fpmpid是空 則退出指令碼
    exit 1
  fi
  kill -9 $fpmpid
  echo 'php-fpm stop....'
}

restart(){
  stop
  start
  echo 'php-fpm restart....'
}

status(){
  ps -ef | grep -v 'color' | grep -v 'pts' | grep 'php-fpm'
  #檢視狀態列印出php-fpm的執行程式
}

#判斷引數值 根據不同的引數值走不同分支 執行相應的函式
case "$1" in
start)
  start
  ;;
stop)
  stop
  ;;
restart)
  stop
start ;; status) status ;; esac

 

3.給執行許可權

chmod +x /etc/init.d/php-fpm

 

4.加入服務

chkconfig --add php-fpm

 

5.最終操作

service php-fpm start
service php-fpm status
service php-fpm restart
service php-fpm stop

 

相關文章