【Python 3サイレントプロセスガード】類家政婦級チュートリアル!バックグラウンドプログラムが間欠的に実行されないことを確保し、プロセスの誤殺と意外なプロセスの終了を回避し、超詳細!


ハロー皆さん、こんにちは、また会いました!
往期回顧:【Windows下Pythonソース暗号化乾貨教程】Pythonソースコードは人に発見されたくないのか?商用にしたいですか?お金を払う必要はありません.自分で二重暗号化してキーコードを保護します.
【Python 3キーボードバックグラウンドモニタリング、親測定利用可能、家政婦レベルチュートリアル】Pythonキーボードモニタリングと記録を実現し、結果をドキュメントに保存する
【PyCharm良心プラグイン推奨】自分のPyCharmをユニークにするにはどうすればいいですか?
【超干物!ウミガメの絵をカスタマイズしたウィンドウアイコン!本当に99%のPython学習者が知らないもの!編集者が自分で模索したもの!】編集者は自分でウミガメの絵でオープニングアニメーションを作って、その醜いアイコンを交換したいですか?最終的に自分で方法を模索します!
【PyCharm良心プラグイン推奨第2期】コードを打つのはゲームをするよりも爽やかですか?このような重厚な打撃感は最高の編纂体験をもたらします!
本号では、Pythonがダブルスレッド、ダブルプロセスに基づいたキープロセスガード(原理に基づいてより高いスレッド数に変更することもできます)について説明します.
あなたの高価なPyCharm(通行人:txtテキストエディタでいいですか?私:少なくともIDLEを1つ持ってきてください)を手に取って、編集者についてかっこいい編集をしましょう.
まず、2つのスクリプトを作成します.ここでの例の名前は:1です.Protect.py 2.Main.py
今、Mainを書きます.py.
1.メインプログラムの作成(Main.py-->Main.exe)
# Vent D'hiver IT Lab
# CSDN    
#      !   !
#                   ~
import os
from threading import Thread

f = os.popen(".\\Protect.exe") #          
i = 1
def main():
    while i == 1:
        print("Running...") 
        #        ,
        #                    
def detect():
    try:
        while 1 == 1: #    
            print('tasklist | findstr ' + 'Protect.exe')
            process = len(os.popen('tasklist | findstr ' + 'Protect.exe').readlines()) #  cmd Protect.exe “    “    
            print(process)
            if process >= 1:
                print("Protection is on")
            else:
                Error #    
    except:
        print("Error Detected. Restarting...")
        f = os.popen(".\\Protect.exe") 
        #        Protect  ,
        #      Protect.py     
        
thread_01 = Thread(target=main) #    
thread_01.start() #     
thread_02 = Thread(target=detect) #    
thread_02.start() #      

これでメインプログラムの作成が完了し、パッケージ化できます.exeファイル、後で使用します.
pyinstaller -F Main.py

(パッケージパラメータは自分で設定)
梱包します.exeファイルは元のスクリプトがあるフォルダに取り、Protect.pyを一緒に置く.
2.プロセスデーモン作成(Protect.py-->Protect.exe)
# Vent D'hiver IT Lab
# CSDN    
#      !   !
#                   ~
import os


def Detect():
    try:
        print('tasklist | findstr ' + "Main.exe")
        process = len(os.popen('tasklist | findstr ' + "Main.exe").readlines())
        print(process)
        if process >= 1:
            return True
        else:
            Error
    except:
        print("Error. Restarting...")
        f = os.popen(".\\Main.exe")
while 1 == 1: #    
    Detect()

パッケージ化exe
pyinstaller -F Protect.py

(パラメータは自分で設定)
最後に、Main.exeとProtect.exeは1つのファイルディレクトリの下に配置され、起動後、タスクマネージャに2つのプログラムが見つかり、killはそのうちの1つを削除し、短時間で復元されます.
欠点と解決策:この方法では、同じ名前のプロセスを置き換える人がいれば、プロセスデーモンを無効にすることができます.2つのプロセスが互いに通信することが望ましい.例えば、文書ドキュメントに鍵を順番に入力し、ある時間を超えて鍵の更新を監視できない場合、プロセスが失効したと判定し、再開する.原理はあなたに教えて、自分で実現することができて、もし血書の家政婦の教程を評論するならば、私は次回関連するもっと詳しい教程を出すことを考えます.
私の文章が好きなら、私に注目することを忘れないでください.あなたたちの支持は私の最大の動力です!初めてCSDNの原力计画に参加して、各位が少し萌新を支持することができることを望みます~私达は次回また会います!