【經驗記錄貼】活用shell,提高工作效率

背景

最近在做測試的時候,需要手動kill服務的進程,然后通過命令重啟服務,再進行測試。每次重啟都會涉及到下面三個命令的執行:

1)檢索進程ID

$ ps -eLf | grep programname
root  1123   112  1234  0   0  0  0:00:00 ?        00:00:00 programname xxx#ps: process status的縮寫
#-e 選項表示顯示所有進程(包括其他用戶的進程)。
#-L 選項表示顯示所有線程(如果進程是多線程的)。
#-f 選項表示顯示完整格式的進程信息,包括用戶、進程ID、父進程ID、CPU時間等。
#結果中第二個是PID(即進程ID)


2)kill進程

$ kill -9 1123# kill -9 強制終止進程
# 1123為上面獲取到的進程ID


3)重啟服務

$ xxx service start# 某個服務啟動命令


PS:為什么不在本地開發測試,因為需要GPU運行服務,所以需要有GPU的環境。目前比較笨的辦法是本地用開發工具修改之后,傳遞到GPU的服務器上運行,每次修改,都需要重啟一下服務以反映修改的代碼。

課題

雖然只有三個命令,每次都要執行三次,還要拷貝PID,次數多了也費時間,還容易出錯。

改進方法


本著能夠自動化就不要手動的理念,直接將上面的命令寫成一個shell,將三次執行變成shell的執行
restart_service.sh

#!/bin/bash# 要查找和終止的命令名稱
COMMAND_NAME="command_name"
# 查找包含指定命令的進程ID  
#   ---awk 'NR==1 {print $2}':只有一個進程,所以從第一行提取進程ID(第二列)即可
#   ---grep -v grep 從搜索結果中排除包含 grep 命令本身的行
PID=$(ps -eLf | grep "$COMMAND_NAME" | grep -v grep | awk 'NR==1 {print $2}')
# 是否存在進程 (-z 測試字符串是否為空)
if [ -z "$PIDS" ]; thenecho "沒有查找到包含'${COMMAND_NAME}'的進程"
elseecho "殺死以下包含命令 '$COMMAND_NAME' 的進程:'$PIDS'"kill -9 $PID
fi#重啟服務
echo "重啟服務"
xxx service start

每次修改完畢之后,執行該shell即可。

$ ./restart_service.sh

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77121.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77121.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77121.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MacOS 系統下 Git 的詳細安裝步驟與基礎設置指南

MacOS 系統下 Git 的詳細安裝步驟與基礎設置指南—目錄 一、安裝 Git方法 1:通過 Homebrew 安裝(推薦)方法 2:通過 Xcode Command Line Tools 安裝方法 3:手動下載安裝包 二、基礎配置1. 設置全局用戶名和郵箱2. 配置 …

一文讀懂 AI

2022年11月30日,OpenAI發布了ChatGPT,2023年3月15日,GPT-4引發全球轟動,讓世界上很多人認識了ai這個詞。如今已過去快兩年半,AI產品層出不窮,如GPT-4、DeepSeek、Cursor、自動駕駛等,但很多人仍…

【教程】檢查RDMA網卡狀態和測試帶寬 | 附測試腳本

轉載請注明出處:小鋒學長生活大爆炸[xfxuezhagn.cn] 如果本文幫助到了你,歡迎[點贊、收藏、關注]哦~ 目錄 檢查硬件和驅動狀態 測試RDMA通信 報錯修復 對于交換機的配置,可以看這篇: 【教程】詳解配置多臺主機通過交換機實現互…

計算機網絡 - TCP協議

通過一些問題來討論 TCP 協議 什么是 TCP ?舉幾個應用了 TCP 協議的例子TCP協議如何保證可靠性?tcp如何保證不會接受重復的報文?Tcp粘包拆包問題了解嗎?介紹一下,如何解決?TCP擁塞控制與流量控制區別&…

Fiddler 進行斷點測試:調試網絡請求

目錄 一、什么是斷點測試? 二、Fiddler 的斷點功能 三、如何在 Fiddler 中設置斷點? 步驟 1:啟動 Fiddler 步驟 2:啟用斷點 步驟 3:捕獲請求 步驟 4:修改請求或響應 四、案例:模擬登錄失…

OpenCv高階(三)——圖像的直方圖、圖像直方圖的均衡化

目錄 一、直方圖 1、計算并顯示直方圖 2、使用matplotlib方法繪制直方圖(不劃分小的子區間) 3、使用opencv的方法繪制直方圖 (劃分16個小的子亮度區間) 4、繪制彩色圖像的直方圖,將各個通道的直方圖值都畫出來 二、…

Flutter 與原生通信

Flutter 與原生之間的通信主要基于通道機制,包括 MethodChannel、EventChannel 和 BasicMessageChannel。 MethodChannel:用于 Flutter 與原生之間的方法調用,實現雙向通信,適合一次性的方法調用并獲取返回值,如 Flut…

前端面試-Vue篇

核心概念 Vue 3的響應式原理與Vue 2有何本質區別?Vue中虛擬DOM的diff算法優化策略有哪些?Vue組件間通信方式有哪些?適用場景分別是什么?Vue的生命周期鉤子在Composition API中如何替代?Vue的模板編譯過程是怎樣的&…

光刻機研發與市場現狀分析報告

1. 引言 光刻機(Lithography Machine)是半導體制造的核心設備,其技術水平和市場供應能力直接影響全球芯片產業的發展。隨著人工智能(AI)、5G、高性能計算(HPC)和自動駕駛等技術的興起&#xff0…

Missashe考研日記-day21

Missashe考研日記-day21 1 專業課408 學習時間:4h學習內容: 今天先把昨天學的內容的課后習題做了,整整75道啊,然后學了OS第二章關于CPU調度部分的內容,這第二章太重要了,以至于每一小節的內容都比較多&am…

【玩轉全棧】—— Django+vue3+訊飛星火API 實現前端頁面實時AI答復

技術棧:vue3 element-plus axios pinia router Django5 websocket 訊飛星火API 本文將實現一個 AI 聊天對話功能,將前端用戶輸入問題以及之前對話發送給后端,通過 api 訪問大模型,返回前端實時對話數據。 調用 訊飛星火API…

廣東廣州一家IPO資產重組疑點重重,信息披露真實性存疑

作者:Eric 來源:IPO魔女 4月18日,廣州瑞立科密汽車電子股份有限公司(簡稱“瑞立科密”)將接受深交所主板IPO上會審核。公司保薦機構為中信證券,擬募集資金為15.2162億元。 瑞立科密過往資產重組疑點重重&a…

銀河麒麟(Kylin) - V10 SP1桌面操作系統ARM64編譯QT-5.15.12版本

銀河麒麟(Kylin) - V10 SP1桌面操作系統ARM64編譯QT-5.15.12版本 原因 測試Kylin-Desktop-V10-SP1-General-Release-2303-arm64系統下,編譯QT-5.15.12版本已做測試。 測試環境 測試板配置 型號:LM-D2000-NONE-1w-V01-pc_A2150 CPU:飛騰D20…

查看前端項目依賴樹型結構關系圖的詳細方法,涵蓋 命令行工具 和 可視化工

以下是查看前端項目依賴樹型結構關系圖的詳細方法&#xff0c;涵蓋 命令行工具 和 可視化工具&#xff1a; 一、命令行工具生成依賴樹 1. npm # 查看項目依賴樹&#xff08;文本形式&#xff09; npm ls# 查看指定包的依賴樹 npm ls <package-name># 生成JSON格式的依…

Ollama高并發測試

本文主要來測試一下ollama的高并發能力。 具體配置如下&#xff1a; 一、Ollama默認參數執行 我們打開4個窗口&#xff0c;然后分別讓DeepSeek “給我講一個笑話” &#xff0c;看下不同窗口的答題順序。 通過答題順序可以看到&#xff0c;在不進行參數設置時&#xff0c;模…

資源管理與HPA:讓Kubernetes應用自動伸縮

引言&#xff1a;從“手動擋”到“自動駕駛” 想象我們駕駛一輛汽車&#xff0c;手動調節油門和換擋不僅費力&#xff0c;還難以應對突發狀況。我們的應用服務也一樣&#xff0c;在面對突然的流量增長&#xff0c;內存使用暴漲該如何應對。HPA&#xff08;Horizontal Pod Auto…

Windows 下 MongoDB ZIP 版本安裝指南

在開發和生產環境中&#xff0c;MongoDB 是一種非常流行的 NoSQL 數據庫&#xff0c;以其靈活性和高性能而受到開發者的青睞。對于 Windows 用戶來說&#xff0c;MongoDB 提供了多種安裝方式&#xff0c;其中 ZIP 版本因其靈活性和輕量級的特點&#xff0c;成為很多開發者的首選…

【Linux網絡與網絡編程】11.數據鏈路層mac幀協議ARP協議

前面在介紹網絡層時我們提出來過一個問題&#xff1a;主機是怎么把數據交給路由器的&#xff1f;那里我們說這是由數據鏈路層來做的。 網絡上的報文在物理結構上是以mac幀的形式流動的&#xff0c;但在邏輯上是以IP流動的&#xff0c;IP的流動是需要mac幀支持的。 數據鏈路層解…

多模態思維鏈AI醫療編程:從計算可持續性到開放域推理的系統性解決方案

多模態思維鏈AI醫療編程:從計算可持續性到開放域推理的系統性解決方案 醫療AI領域的多模態思維鏈技術正在重塑臨床決策支持、醫學影像分析和醫療流程優化的范式。本指南從計算可持續性、錯誤傳播控制、倫理安全防護和通用性擴展四大維度,系統解析醫療大模型落地落地的關鍵要…

代理模式深度解析

目錄 一 靜態代理 1.1 優點 1.2 缺點 1.3 適用場景 二 JDK動態代理 1 JDK動態代理的工作原理 1.1 創建代理類 1.2 加載代理類 1.3 實現方法調用 2. Proxy.newProxyInstance() 的核心工作流程 方法簽名 工作步驟 3. 代理類的生成與加載 3.1 代理類生成的關鍵方法 …