Linux系統新增應用服務程序的守護程序

2022-06-07 20:48:11 字數 2158 閱讀 9890

以前曾在linux上維護應用服務,但是只是簡單的迭代版本等工作,沒有什麼技術含量。最近部署在linux伺服器上的乙個平台的匯流排程序broker(下面匯流排用broker指代)經常掛掉,由於匯流排負責服務之間通訊,分發訊息給各個應用服務,匯流排一旦掛掉就導致整個平台癱瘓。匯流排程序掛掉需要人工重啟,在沒有找到具體原因前維護起來很不方便,而且往往是使用者先發現才反饋過來,所以先寫乙個守護程序,一旦匯流排掛掉就重啟。網上查了很多資料,總算搞出來了,大體寫一下實現步驟,即是備忘也分享給大家,相互交流。

先說一下大體思路:

1、建立乙個指令碼檔案middle_start,迴圈查詢broker程序是否存在,如果不存在就啟動broker;

2、另外建立乙個啟動指令碼start,啟動middle_start,指定middle_start為後台程序;

3、再建立乙個結束end,先結束守護程序,再結束broker。

第一步的middle_start**如下:

#! /bin/bash

sysctl -w net.core.wmem_default=16777216

sysctl -w net.core.wmem_max=16777216

sysctl -w net.core.rmem_default=16777216

sysctl -w net.core.rmem_max=16777216

#program directory path

pro_path

=$pwd

#program name

pro_name

="/broker"

#program path, not need configure.

pro_main

=$pro_path$pro_name

#gnome start program< not need configure.

program_gnome

="gnome-terminal -e \"$pro_main\""

#start method gnome or nohup (eg: gnone-->star_pro=$program_gnome ; nohup-->star_method=$pro_main)

star_method

=$pro_main

export ld_library_path=../../lib:$ld_library_path

while :

dopro_now=`ps aux | grep $pro_main | grep -v grep | wc -l`

if [ $pro_now -lt 1 ]; then

echo "-- start broker --"

$star_method 2>/dev/null 1>&2 &

curtime=`date +"%y-%m-%d %h:%m:%s"`

echo "$curtime $pro_main start" >> $pro_path/tinfo.log

fisleep 5

done

exit 0

主要看紅色部分。

第二步的start指令碼如下:

#! /bin/bash

./middle_start.sh &

第三部的end指令碼也很簡單:

#!/bin/bash

#progress name

pro_name="

middle_start.sh

"brk_name="

broker

"ps -ef|grep $pro_name |grep -v grep|awk '

'|xargs kill

echo

"kill $pro_name done!

"ps -ef|grep $brk_name |grep -v grep|awk '

'|xargs kill -9

echo

"kill $brk_name done

"

完成上面的步驟後,啟動start指令碼,ps查詢broker已經執行,強行kill掉後broker仍然存在,已經是小強般的存在,執行end後broker銷毀。

應用服務和領域服務

在領域驅動設計中,service有兩種 領域服務和應用服務,單純從它們的定義來看,兩者很容易區分,前者是與業務邏輯密切相關的服務,往往處理複雜的業務請求。後者則是面向應用角度的一些支援功能,與業務本身並無太大關聯。一些典型的應用服務有 傳送電子郵件通知使用者,對密碼進行加密解密等等。在oobbs中,...

web應用服務開發

serverless 架構應該會是未來的乙個新趨勢。得益於我司十幾年前一幫大神資料庫表模型設計的優異,一開始剛進公司的時候,很是驚嘆。通過客戶端配配屬性,乙個查詢頁面和乙個資源實體的屬性控制項頁面就生成好了。每週花十五分鐘閱讀就可以了解最新的 swift 開發進度 okhttp 使用小記 快取和驗證...

web應用服務簡述

動態資源即通過程式 j a php python net 和資料庫 mysql oracle sqlserver 根據業務處理流程動態生成網頁的html,再將html響應給請求 客戶端 http 1.0 1.1 2.0 和html的關係 1.客戶端封裝http請求 httprequest 向服務端發...