後台開發在部署、修改配置、公升級服務時,需經常進行啟動、關閉等操作無數次的重複非常繁瑣,故寫個shell指令碼解放雙手還是很有必要的。常規的做法:
- 啟動: 敲一行執行啟動命令,
- 關閉: 執行
ps aux | grep ***
,查到程序號,在執行kill -9 ***
- 修改配置檔案後又得先關閉,在啟動
本文是做專案中寫的乙個小指令碼,簡單實用,特此總結一下。
需支援- usage
- start
- stop
- restart
- status
輸出usage: $0
檢測是否有pid檔案,有則提示已經啟動,無則執行啟動命令,成功時將新程序號寫入pid檔案,失敗時提示異常
檢測是否有pid檔案,無則提示未啟動,有則執行kill -9 $pid
命令,刪除pid檔案
先執行stop,再執行start
檢測是否有pid檔案,無則提示未啟動,有則提示$pid,pid檔案路徑,程序相關資訊
#!/bin/sh
# $0 表shell命令第乙個引數,即指令碼本身
# $(dirname $0) 定位指令碼檔案所在的目錄
base_dir=$(dirname $0)
# $(basename $0 .sh) 定位指令碼名稱,.sh表示去除.sh字尾
pid=$(dirname $0)/$(basename $0 .sh).pid
#user=root
status
() start
() stop
() '`
# echo `cat $pid` | xargs kill -9
kill -9 `cat $pid`
sleep 1
/bin/rm $pid
echo
"stop success"
else
echo
"---no pid file---"fi}
case
"$1"
in'start')
start
;;'stop')
stop
;;'restart')
stop
sleep 1
start
;;'status')
status
;;*)
echo
"usage: $0 "
exit
1 ;;
esac
exit
0
linux啟動指令碼
一 開機啟動時自動執行程式 1,init是所有程序的頂層,init讀取 etc inittab配置 2,init呼叫執行 etc inittab配置的 etc rc.d rc.sysinit指令碼 3,rc.sysinit根據inittab執行 etc rc?d 目錄下的各個指令碼 4,大多數啟動指...
linux 開機啟動指令碼或者服務
準備工作 1.先編寫shell,將需要啟動的服務都放在此指令碼中,取名restart.sh 2.在restart.sh 中將環境變數 執行一下 etc profile 3.chmod x restart.sh 將指令碼可正確執行 以下是我滴例子 restart.sh 檔案 bin bash 環境變數...
Linux 自製系統服務啟動指令碼
在linux的某些系統服務中,需要自己定製啟動服務的指令碼。通常會使用cash語句來實現。一般用於程式啟動指令碼 syntax case 1in param1 commands param2 commands commands esacexample bin bash e bin bash e 表示...