1. 程式人生 > >shell判斷程式/服務是否執行

shell判斷程式/服務是否執行

由於目前多元件的開發模式,導致一個服務可能是由多個元件同時支援的,所以判斷這些元件的正常執行就變得比較重要了,之前是根據資料流向,由源頭開始判斷,命令繁瑣,且時間長了,命令也就不記得了。所以想編寫一個指令碼,進行服務的status判斷:

以agent+kafka +tomcat為例:

#!/bin/bash

serviceListening(){
   command=`netstat -ln|grep $2`
   if [  "$command" == "" ]
   then
	echo -e "\033[31m$1 not started \033[0m" 
   else
	echo "$1 is started"
   fi
	
}

serviceStatus(){
 command=`ps aux|grep $2 |grep -v "grep"`
   if [  "$command" == "" ]
   then
	echo -e "\033[31m$1 not started \033[0m" 
   else
        echo "$1 is started"
   fi

}
#listen port
#DB
echo -e  "\033[32mDB status\033[0m"
serviceListening mysql 3306
#Component 
echo -e  "\033[32mComponent status\033[0m"
serviceListening kakfa 9092
serviceStatus agent appmaster
#web
echo -e  "\033[32mWEB status\033[0m"
serviceListening tomcat 80

輸出:

DB status
mysql is started
Component status
kakfa is started
agent not started 
WEB status
tomcat not started 

相關推薦

shell判斷程式/服務是否執行

由於目前多元件的開發模式,導致一個服務可能是由多個元件同時支援的,所以判斷這些元件的正常執行就變得比較重要了,之前是根據資料流向,由源頭開始判斷,命令繁瑣,且時間長了,命令也就不記得了。所以想編寫一個指令碼,進行服務的status判斷:以agent+kafka +tomcat

有意思 SDWebImage 有兩個巨集 來判斷程式在主執行執行

#define dispatch_main_sync_safe(block)\     if ([NSThread isMainThread]) {\         block();\     }

判斷程式自身是執行32位還是64位

// 在做驅動和應用層通訊時,兩個程式必須都是32位或者64位的。(可能32位和64位的驅動可以通訊,未了解。)// 但是64位下可以執行32位的程式,導致與驅動的通訊失敗,於是乾脆就加了個判斷自身是否是32位還是64位。bool IsApp64() { int nNum

判斷當前服務是否執行

//判斷服務是否在執行 private boolean isServiceRunning() {     ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);    

本地列印後臺處理程式服務沒有執行

今天連線別人電腦上的印表機,老是出現本地後臺處理程式沒有執行的錯誤。 如下圖所示: 就像參考【1】的問題補充所說,把print  spooler 服務設定為自動並啟動了,然後我搜到區域網絡中的印表機後右鍵點選“連線”後就出提示,這回再看print  spooler服務已經

Linux下用C語言判斷程式是否已執行

通過程式名獲得程序號,然後和當前程式程序號做對比。 int isRunning() { int ret = 0; char sCurrPid[16] = {0}; spri

快速解決印表機後臺程式服務沒有執行的問題

  許多人在安裝使用印表機時或者新增打擊機時,通常會出現一個系統錯誤提示:“印表機後臺程式服務沒有執行”要麼就在使用印表機列印時提示“後臺處理程式子系統應用程式已停止工作並關閉”,相信許多朋友都很碰到這樣的問題,下面筆者將詳細的跟大家說下系統提示“印表機後臺程式服務沒有

Shell指令碼執行hive語句 | hive以日期建立分割槽表 | linux schedule程式 | sed替換檔案字串 | shell判斷hdfs檔案目錄是否存在

#!/bin/bash source /etc/profile; ################################################## # Author: ouyangyewei # #

執行緒版本TCP聊天程式服務

   這是一個通過多執行緒來實現可以接受多個客戶端的TCP聊天程式。    //這是一個實現多執行緒TCP的聊天程式服務端 #include<stdio.h> #include<stdlib.h> #includ

程式執行時間(15) 時間限制 1000 ms 記憶體限制 32768 KB 程式碼長度限制 100 KB 判斷程式 Standard (來自 小小)

題目描述 要獲得一個C語言程式的執行時間,常用的方法是呼叫標頭檔案time.h,其中提供了clock()函式,可以捕捉從程式開始執行到clock()被呼叫時所 耗費的時間。這個時間單位是clock tick,即“時鐘打點”。同時還有一個常數CLK_TCK,給出了機器時鐘每秒

以Windows服務方式執行.NET Core程式

在之前一篇部落格《以Windows服務方式執行ASP.NET Core程式》中我講述瞭如何把ASP.NET Core程式作為Windows服務執行的方法,而今,我們又遇到了新的問題,那就是:我們的控制檯程式,也就是普通的.NET Core程式(而不是ASP.NET Core程式)如何以服務的方式執行

怎樣判斷一個exe可執行程式(dll檔案)是32位的還是64位的?

簡便方法: 直接用記事本或者notepad++開啟exe檔案(dll檔案),會有很多亂碼,不要頭疼,接下來只需要在第二段中找到PE兩個字母,在其後的不遠出會出現d? 或者L。若是d,則證明該程式是64位;若是L,則證明是32位。

shell互動程式自動執行

(3)i586-poky-linux-uclibc-gcc \ -pipe -O2 -fomit-frame-pointer -Wall -fPIC  \ -Wl,--export-dynamic  \-o expect exp_main_exp.o \-L/home/hya/2100_test/0503/e

NSIS打包,判斷當前程式是否在執行

編譯完成後會後兩個方法,一個是un.onInit,解除安裝程式;一個是un.onUninstSuccess解除安裝成功提示 我們一般在安裝程式的時候以及解除安裝,需要判斷一下,要不程式正在執行,刪不了它。 新增這兩個方法就行。 安裝時候判斷 Functi

.net 判斷程式是否執行在虛擬機器上 (方法2)

前面寫過一種方法是用第三方的dll來判斷是否執行在虛擬機器中,但是那個方法只能在32位下執行。 http://blog.csdn.net/fhl812432059/article/details/51

C# winform 判斷程式是否已經在執行 判斷程式是否已經開啟

在   Program.cs  開啟的時候在裡面修改[STAThread] static void Main() { Application.E

NSIS安裝過程中判斷程式是否執行中,FindProcDLL和KillProcDLL

FindProcDLL::FindProc {process_name} 返回值: 0 - 未找到 1 - 找到 KillProcDLL::KillProc {process_name} 0

從Linux程式執行shell程式、指令碼)並獲得輸出結果(轉)

1. 前言 2. 使用臨時檔案 3. 使用匿名管道 4. 使用popen 5. 小結

以Windows服務方式執行ASP.NET Core程式

我們對ASP.NET Core的使用已經進行了相當一段時間了,大多數時候,我們的Web程式都是釋出到Linux主機上的,當然了,偶爾也有需求要釋出到Windows主機上,這樣問題就來了,難道直接以控制檯形式執行這個Web程式嗎? 直接以控制檯形式執行程式當然是可以的,但有以下問題: 需要敲命令列(這個

Android之判斷某個服務是否正在執行的方法

/** * 判斷某個服務是否正在執行的方法 * * @param mContext * @param serviceName * 是包名+服務的類名(例如