跳到主要內容

[Python] 自己開發software watchdog監控程式狀態

在Windows下想要有一個software watchdog的機制來監看自己的軟體是否還活著,你可以參考以下的簡單作法:

1. 在Windows排程設定中設定每分鐘執行一次被監看的程序 (若已執行則不重複執行)
2. 寫一個小程序,在Windows排程設定中設定每分鐘執行一次這個程序 (若已執行則刪除後再執行)
3. 小程序執行後透過Socket與被監看的程序連結,並傳遞自定義的簡單字串。相對應的,被監看程序也要有一個Socket thread讓小程序連接並回應
4. 若無法連結上被監看程序或是沒收到被監看程序的ACK回覆則認定程序出問題
5. 小程序執行指令關閉被監看程序,小程序結束自己
6. 被監看程序待1分鐘後被Windows排程重新執行
7. 回到第3步驟

Windows排程設定中設定每分鐘執行一次被監看的程序:
 Windows排程設定中設定執行的方式:





留言

這個網誌中的熱門文章

[Python] 以.py檔案產生Windows EXE 執行檔

如何開發能在Windows下執行的Python程式?你當然可以在Windows下安裝Python之後用command line運行你的 .py source code來直接執行程式,但是這方法基本上只適合開發中的程式,或是自己寫好玩只在自己的PC上執行的程式,也許適用。 但若你的需求是要在每個Windows的OS下都可以執行、且是不公開程式碼的,那就必須要將你的 .py source code包裝成EXE執行檔了,下面就介紹如何進行: –下載 auto-py-to-exe-master https://github.com/brentvollebregt/auto-py-to-exe 1. 解壓縮auto-py-to-exe-master.zip到想要的路徑下(路徑不能有空格或".") 2. 開啟Cmd console 到auto-py-to-exe-master路徑下 3. 在console下執行"pip install -r requirements.txt" 4. 在console下執行"python run.py" 運行完畢後就可以選取你要轉成執行檔的 .py 檔案,進行製作。 可參考下面的影片: 產生出來的檔案包含執行檔與其程式中會用到的相關Lib檔案,所以要將整個output資料夾中的檔案一併提取出來 (不要只拿執行檔出來)。 如此你就可以在任意的Windows上執行你的程式了。

Visual Studio 軟體開發的授權問題

使用Visual Studio開發各種軟體產品非常的方便,此款地表最強軟體開發工具涵蓋了各種的程式語言。但在授權上需要注意一下,否則很有可能會被微軟收取罰金。         Visual Studio Community可以在任何狀況下使用,但是要商業用途(賣產品)只限個人創作,公司組織的話除非是開放原碼、教育、學術研究,除此之外皆不可使用。 因此公司組織要用Visual Studio做產品的話,一種做法是買一套Professional版本,開發時用 Community 版本,要Release給客戶時用 Professional 或更高級的版本編譯;另一種做法是不考慮轉用更高級版本,那麼一開始就採用 Express 版可以降低未來轉換之困擾。 但需要知道 Express 版少了許多功能(例如 Code Coverage、Profiling ...),並且從2019開始微軟不再推出Express版本,也意味著沒有"公司組織免費使用Visual Studio開發產品"的選項了。 微軟雖然不再推出Express版本,但有另一個免費的IDE工具VS code,也可用來開發軟體,只是相對來說Visual Studio只稱得上是一個程式編輯器,如果要在VS code上開發如Winform的程式,就要使用第三方的工具了,以下提供幾個VS code上開發的連結: VS code上開發Winform https://ironmansoftware.com/building-a-windows-form-app-with-powershell-in-vs-code/ VS code上開發ASP.NET core https://blog.johnwu.cc/article/asp-net-core-3-starting.html

[DevOps] 持續集成、持續交付、持續部屬(CI/CD)的開發流程實作

DevOps可以稱為一種工作文化,主要在實現一種將專案從開發、到測試、再到發佈產品的整個流程自動化、透明化的概念。讓開發人員和品管、測試人員之間無隔閡的一種開發理念。 要實現這樣的理念,就要有許多的工具進行整合,將整個專案的每個步驟串接起來。以下說明目前透過ASP.NET的專案進行的DevOps實作: 上圖為已經實作的DevOps架構,透過Jenkins為主的自動化佈建工具,將專案從開發、到測試、再到發佈產品的整個流程。 由上圖可看到開發人員(Developer)將各自開發更新的程式碼上傳git server (ex. GitHub)後,由於Jenkins已在GitHub帳號嵌入webhook,因此每當GitHub發生更新事件,就會通知Jenkins進行第一步: Download source code from github 。 Jenkins從GitHub下載最新的程式碼後進行第二步: Build source code 。此處依據專案的程式碼語言需在Jenkins中設定相對應的編譯環境。以ASP.NET Core為例,需要在Jenkins中安裝設定nuget,使Jenkins在編譯程式碼時下載相關的第三方程式庫。 而依據不同的程式碼語言,開發人員須自行開發單元測試(Unit test),在Jenkins中可設定執行Unit test程式碼以進行第三步: Unit test function 。 第四步:Source code detection ,主要是對程式碼進行bug檢測、安全性掃描、程式邏輯檢查。主要透過SonarQube進行,完成檢測後產生網頁報表、Log紀錄。 第五步:Deliver and deploy to target place。在前四步都通過後,將最後的binary file和相關的產出檔案搬移至目標機台上,甚至是直接更新部屬並運行。 PS.  - 有問題或錯誤即停止動作並透過通訊媒介(ex. Teams, e-Mail)通知相關人員。 - 1~4步屬於CI,第5步屬於CD。 - 一般來說進行完CI步驟後通知主要把關人員,確認無誤後再進行CD。 建構的步驟依序如下: [DevOps] 實作軟體CI/CD運行架構 - CI part https://programmingyourlife.blogspot.com/2020/05/d...