Mac下根據程序名定時殺死 守護程序方式重啟程序

2021-08-22 08:22:29 字數 1506 閱讀 9165

參考博主文章

以mac下殺死和重啟pycharm程式為例編寫指令碼,使用的是python3.6環境

一、殺死程序

ps -ef | grep pycharm | awk '' | xargs kill -9  # ps -ef | grep pycharm | awk '' | xargs執行之後,會將所有含有pycharm都程序號列出來
二、啟動程序

三、建立乙個shell檔案,假設命名未re_s.sh,內容如下,作用是用來殺死程序,延時5s,啟動程序 (|| 和&& 的區別,參考此博主的部落格

#!/bin/bash

echo 're start' `date` >> /users/007/desktop/test/log.log &&  # 日誌中記錄指令碼開始時間

ps -ef | grep pycharm | awk '' | xargs kill -9 ||  # 殺死程序,此處可以省略||,(用|| 而沒用&& ,因為此命令執行後會出現kill: ***x: no such process 錯誤,|| 的意思是出現錯誤後執行接下來的語句,而&&是沒有錯誤的情況下執行接下來的語句)

sleep 5s &&  # 延時5s

/bin/bash /users/007/desktop/test/re_start.sh &&  # 啟動程序

echo 're end' `date` >> /users/007/desktop/test/log.log  # 寫入日誌

四、建立用來啟動程式程序的指令碼,這裡假設命名為re_start.sh

#!/bin/bash

echo 'start' `date` >> /users/007/desktop/test/log.log &&

echo 'end' `date` >> /users/007/desktop/test/log.log

五、都設定好之後,執行re_s.sh檔案即可

注意:.sh檔案需要加可執行許可權,不過為了方便,一般使用chmod 777 ***.sh,許可權全加,也可以將四和五中的部分**整合成乙個shell指令碼,如果要定時,可以使用crontab進行定時

# 整合後的**

#!/bin/bash

echo 're start' `date` >> /users/007/desktop/test/log.log &&  # 日誌中記錄指令碼開始時間

ps -ef | grep pycharm | awk '' | xargs kill -9 ||  # 殺死程序,此處可以省略||,(用|| 而沒用&& ,因為此命令執行後會出現kill: ***x: no such process 錯誤,|| 的意思是出現錯誤後執行接下來的語句,而&&是沒有錯誤的情況下執行接下來的語句)

sleep 5s &&  # 延時5s

echo 're end' `date` >> /users/007/desktop/test/log.log  # 寫入日誌

Linux Shell指令碼實現根據程序名殺死程序

shell指令碼原始碼如下 bin sh 根據程序名殺死程序 if lt 1 then echo 缺少引數 procedure name exit 1fi process ps ef grep 1 grep v grep grep v ppid awk for i in process do ech...

Linux Shell指令碼實現根據程序名殺死程序

懷念windows下的任務管理器啊,有啥看的順眼的程式滑鼠點幾下就能將其乾掉。今天在用firefox瀏覽器瀏覽網頁時,介面瞬間卡住了,什麼都不能點,測試了下,只有切換到命令列介面 ctrl alt f1 才有反應,切回文字介面ctrl alt f7 後還是卡住的。ps 其他按鍵的感覺就像是失效一般,...

Linux Shell指令碼實現根據程序名殺死程序

懷念windows下的任務管理器啊,有啥看的順眼的程式滑鼠點幾下就能將其乾掉。今天在用firefox瀏覽器瀏覽網頁時,介面瞬間卡住了,什麼都不能點,測試了下,只有切換到命令列介面 ctrl alt f1 才有反應,切回文字介面ctrl alt f7 後還是卡住的。ps 其他按鍵的感覺就像是失效一般,...