linux服務啟動指令碼實踐

2021-08-24 18:17:11 字數 1553 閱讀 3001

後台開發在部署、修改配置、公升級服務時,需經常進行啟動、關閉等操作

常規的做法:

- 啟動: 敲一行執行啟動命令,

- 關閉: 執行ps aux | grep ***,查到程序號,在執行kill -9 ***

- 修改配置檔案後又得先關閉,在啟動

無數次的重複非常繁瑣,故寫個shell指令碼解放雙手還是很有必要的。

本文是做專案中寫的乙個小指令碼,簡單實用,特此總結一下。

需支援

- 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 表示...