Mac下根據程序名定時殺死/守護程序方式重啟程序
阿新 • • 發佈:2019-01-29
以Mac下殺死和重啟pycharm程式為例編寫指令碼,使用的是python3.6環境
一、殺死程序
ps -ef | grep pycharm | awk '{print $2}' | xargs kill -9 # ps -ef | grep pycharm | awk '{print $2}' | xargs執行之後,會將所有含有pycharm都程序號列出來
二、啟動程序
/Applications/PyCharm.app/Contents/MacOS/pycharm
三、建立一個shell檔案,假設命名未re_s.sh,內容如下,作用是用來殺死程序,延時5s,啟動程序 (|| 和&& 的區別,參考此博主的部落格https://www.cnblogs.com/clam/archive/2012/12/17/2821684.html)
#!/bin/bash echo 're start' `date` >> /Users/007/Desktop/test/log.log && # 日誌中記錄指令碼開始時間 ps -ef | grep pycharm | awk '{print $2}' | xargs kill -9 || # 殺死程序,此處可以省略||,(用|| 而沒用&& ,因為此命令執行後會出現kill: xxxx: 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 &&
/Applications/PyCharm.app/Contents/MacOS/pycharm >>/Users/007/Desktop/test/log.log 2>&1 & # 守護程序的方式啟動
echo 'end' `date` >> /Users/007/Desktop/test/log.log
五、都設定好之後,執行re_s.sh檔案即可
# 整合後的程式碼
#!/bin/bash
echo 're start' `date` >> /Users/007/Desktop/test/log.log && # 日誌中記錄指令碼開始時間
ps -ef | grep pycharm | awk '{print $2}' | xargs kill -9 || # 殺死程序,此處可以省略||,(用|| 而沒用&& ,因為此命令執行後會出現kill: xxxx: No such process 錯誤,|| 的意思是出現錯誤後執行接下來的語句,而&&是沒有錯誤的情況下執行接下來的語句)
sleep 5s && # 延時5s
/Applications/PyCharm.app/Contents/MacOS/pycharm >>/Users/007/Desktop/test/log.log 2>&1 & # 守護程序的方式啟動
echo 're end' `date` >> /Users/007/Desktop/test/log.log # 寫入日誌