linux監控某個程序的執行shell指令碼
該指令碼實現了對指定程序名的程序進行每隔2的掃描監控,一旦發現程序不存在便重新啟動。
#!/bin/sh
a=10;
while [[ @a -gt 5 ]]; do
if test $(pgrep -f $1|wc -l) -eq 2;then
sh stop.sh
gnome-terminal -x sh start.sh &
fi;
sleep 2;
done;
總結:(1)&表示當前程序又啟動一個程序執行gnome-terminal命令;(2)linux下父程序掛掉,子程序不會掛,而是將子程序的父程序設為1(init程序);(3)檢視後臺執行程序的命令jobs -l;檢視程序20197的父程序的方法 ps -ef|grep 20197。
我的問題:pgrep -f $1|wc -l 在sh中的執行情況和在終端下執行的結果是不一樣的,為啥在sh中執行不存在時,是2?,歡迎評論討論~~
相關推薦
linux監控某個程序的執行shell指令碼
該指令碼實現了對指定程序名的程序進行每隔2的掃描監控,一旦發現程序不存在便重新啟動。 #!/bin/sh a=10; while [[ @a -gt 5 ]]; do if test $(pgrep -f $1|wc -l) -eq 2;then
一個簡單的linux下設定定時執行shell指令碼的示例
很多時候我們有希望伺服器定時去執行一個指令碼來觸發一個操作,比如說定時去備份伺服器資料、資料庫資料等 不適合人工經常做的一些操作這裡簡單說下 shell Shell俗稱殼,類似於DOS下的command和後來的cmd.exe。它接收使用者命令,然後呼叫相應的應用程式。作為命
sh命令 /Linux中執行shell指令碼的4種方法總結
bash shell 指令碼的方法有多種,現在作個小結。假設我們編寫好的shell指令碼的檔名為hello.sh,檔案位置在/data/shell目錄中並已有執行許可權。 方法一:切換到shell指令碼所在的目錄(此時,稱為工作目錄)執行shell指令碼:此種方法為阿里雲推
Linux檢視某個程序的執行緒
執行緒是現代作業系統上進行並行執行的一個流行的程式設計方面的抽象概念。當一個程式內有多個執行緒被叉分出用以執行多個流時,這些執行緒就會在它們之間共享特定的資源(如,記憶體地址空間、開啟的檔案),以使叉分開銷最小化,並避免大量高成本的IPC(程序間通訊)通道。這些功能讓執行緒在
linux定時執行shell指令碼
寫一個shell指令碼,定時執行簡單示例 很多時候我們有希望伺服器定時去執行一個指令碼來觸發一個操作,比如說定時去備份伺服器資料、資料庫資料等 不適合人工經常做的一些操作這裡簡單說下 Shell俗稱殼,類似於DOS下的command和後來的cmd.exe。它接收使用者
使用crontab,讓linux定時執行shell指令碼
使用crontab你可以在指定的時間執行一個shell指令碼或者一系列Linux命令。例如系統管理員安排一個備份任務使其每天都執行 入門 # crontab –e 這樣可以已編輯模式打開個人的crontab配置檔案,然後加入一下這行: 0 0 * * * /home
linux 定時執行shell指令碼 定時任務
在oracle 中可以利用dbms_job包定時執行pl/sql、sql過程,在像備份等需要在作業系統級定時任務只能採用crontab來完成 本文講述crontab具體用法,以供備忘. 在oracle 中可以利用dbms_job包定時執行pl/sql、sql過程,在
Linux中執行shell指令碼的4種方法總結
這篇文章主要介紹了Linux中執行shell指令碼的4種方法總結,即在Linux中執行shell指令碼的4種方法,需要的朋友可以參考下bash shell指令碼的方法有多種,現在作個小結。假設我們編寫好的shell指令碼的檔名為hello.sh,檔案位置在/data/sh
linux crontab執行shell指令碼中包含相對路徑的問題
例項一 test.sh檔案 echo `date`>test.log 配置crontab 設定 */1 * * * * sh /data/test.sh 在/data/目錄下,未找到test.log檔案,重啟了crontab服務,service cronb rest
Linux 中執行Shell 指令碼的方式(三種方法)
Shell 指令碼的執行方式通常有如下三種: (1)bash script-name 或者 sh script-name;(2)path/script-name或者./script-name;(3)sourcescript-name或者. script-name。下面,分別
Linux執行shell指令碼方式及區別&命令後臺執行
假設shell指令碼檔案為hello.sh 放在/root目錄下。下面介紹幾種在終端執行shell指令碼的方法: [[email protected] home]# cd /root/ [[email protected] ~]#vim hello.s
Linux中執行Shell指令碼的方式(三種方法)
Shell 指令碼的執行方式通常有如下三種:(1)bash script-name 或者 sh script-name;(2)path/script-name或者./script-name;(3)source script-name或者. script-name。下面,分別介
linux 定時執行shell指令碼
在oracle 中可以利用dbms_job包定時執行pl/sql、sql過程,在像備份等需要在作業系統級定時任務只能採用crontab來完成 本文講述crontab具體用法,以供備忘. 在oracle 中可以利用dbms_job包定時執行pl/sql、sql過程,在像備份等
Android之在linux終端執行shell指令碼直接列印當前執行app的日誌
1、問題我們一般很多時候會需要在ubuntu終端上列印當前執行app的日誌,我們一般常見的做法是1)、獲取包名 開啟當前執行的app,然後輸入如下命令,然後在第一行TASK後面的就可以看到包名adb shell dumpsys activity top2)、我們的終
Linux執行shell指令碼
1、登入Linux伺服器,使用vim 檔名來建立一個檔案,shell指令碼一般以.sh結尾,不過後綴名不影響執行效果。 修改為其他字尾名不影響效果: 使用vim命令建立一個新檔案,按a鍵使檔案可編輯狀態,新增一下文字,輸出Hello World: #!/bin/
Java 連線遠端Linux 伺服器執行 shell 指令碼檢視 CPU、記憶體、硬碟資訊
/* * Written by wei.Li and released to the public domain * Welcome to correct discussion as explained at * * ------------------------------------------
Linux 定時任務執行Shell指令碼【CentOS6.8】
本人一直從事Windows系統的開發,最近一年基本上都在研究.NET跨平臺相關的知識,最近遇到一個棘手的問題,由於前期技術選型的時候說採用WebAPI的方式進行部署,我當時就答應了,到最後上線的時候突然發現一個逆天的功能,需要通過API修改系統的IP,子網掩碼,
Linux中執行shell指令碼的4種方法
前提條件:shell指令碼hello.sh,位置在/data/shell目錄中並已有執行許可權。 1)方法一:切換到shell指令碼所在的目錄(此時,稱為工作目錄)執行shell指令碼 cd /data/shell ./hello.shPS:a)./的意思是說在當前的工作目
linux 普通使用者登入後,執行 shell指令碼切自動輸入密碼切換到root
1.首先安裝expect 2.2.編寫指令碼 /home/zukgit/suz.sh #!/bin/bash # #!/usr/bin/expect -f 使用這種方式 程式無法執行 expect -c " spawn su - expect \":\" send
Linux下執行Shell指令碼
Linux下可以用兩種方式執行Shell指令碼: 1、用shell程式執行指令碼:根據你的shell指令碼的型別,選擇shell程式,常用的有sh,bash,tcsh等。一般來說,第一行#!/bin/bash裡面指明瞭shell型別的,比如#!/bin/bash指明是bas