python向其他進程注入代碼(python注入微信進程)

  • 1、如何將調試器附加到python子進程
  • 2、python遍歷目錄就是這麼簡單
  • 3、如何讓 Python 代碼常駐在伺服器進程中

從「調試」菜單中選擇「附加到進程」。(如果沒有打開任何項目,請從「工具」菜單中選擇「附加到進程」。)

在「附加到進程」對話框的「可用進程」列表中,找到要附加到的程序。

如果要調試的程序運行在另一台計算器上,必須首先選擇該遠程計算機。(有關更多信息,請參見

。)如果進程在其他用戶帳戶下運行,請選中「顯示來自所有用戶的進程」框。

如果已通過「遠程桌面連接」連接,請選中「顯示所有會話中的進程」框。

在「附加到」框中,確保要調試的代碼類型已列出,或「自動: 託管代碼」已顯示。否則:

單擊「選擇」。

在「選擇代碼類型」對話框中,單擊「調試以下代碼類型」,然後選擇要調試的類型。

單擊「確定」。

單擊「附加」按鈕。

打開「進程」對話框時,會自動顯示「可用進程」列表。對話框打開時進程仍能在後台中開始和停止,因此內容可能並非始終是最新內容。通過按「刷新」,可以隨時刷新列表以查看當前進程列表。

調試時可以附加到多個程序,但在任何給定時間,調試器中只有一個程序處於活動狀態。可以在「調試位置」工具欄中設置活動程序。有關更多信息,請參見

所有的「調試」菜單執行命令都會影響活動程序。可以通過「進程」對話框中斷任何已調試的程序。有關更多信息,請參見

注意為使調試器附加到用 Visual C++ 編寫的代碼,該代碼需要發出

DebuggableAttribute

。可通過鏈接

/ASSEMBLYDEBUG

鏈接器選項將它自動添加到代碼中。

注意如果試圖附加到不受信任的用戶帳戶擁有的進程,則會出現安全警告對話框確認。有關更多信息,請參見

安全警告:附加到不受信任的進程可能會有危險。

注意在某些情況下,在「終端服務」(「遠程桌面」)會話中進行調試時,「可用進程」列表不會顯示所有可用進程。在 Windows Server 2003 或更高版本上,如果您以受限用戶身份運行 Visual Studio,則「可用進程」列表不會顯示在會話 0 中運行的進程,會話 0 用於服務以及包括 w3wp.exe 在內的其他伺服器進程。您可以通過以下方法解決該問題:使用管理員帳戶運行 Visual Studio 或從伺服器控制台而不是「終端服務」會話運行 Visual Studio。如果這兩種解決方法都不奏效,第三種方法是通過從 Windows 命令行運行

vsjitdebugger.exe -pProcessId來附加到進程。您可以使用 tlist.exe 來確定進程 ID。

有時我們有列出目錄下都有哪些文件和子目錄的需求,這種情況是有現成命令可用的,比如windows下的dir命令,linux下的ls命令都可以,那我們用python代碼怎麼實現呢?

我們利用python豐富的庫很容易就能實現一個簡易版本,下面我們就用4種方法來實現它。

一、使用os.popen

os.popen工作原理是新建一個子進程,然後用這個子進程執行命令,父進程與子進程間通過管道進行通信。

根據調用popen時的傳參,我們可以通過管道讀取子進程的輸出也可以向子進程寫數據,默認是讀取子進程的輸出。

從以上描述可以看出popen是非常通用的,不是只能用於我們這個例子哦。

那我們開始用它實現我們的需求吧,代碼如下:

哈哈,是不是很簡單,這種方式雖然能達到目的但其實並不是我們想要的,我們本來就是要實現ls的,結果調用了ls,所以嚴格意義上來說我們並沒有實現ls,那讓我們繼續往下看其它方法吧,嘿嘿。

二、使用glob.glob

glob可以根據你使用的通配符對文件進行匹配,利用這個特性我們可以列出當前目錄下都有哪些文件和子目錄,如下代碼:

三、使用os.listdir

os.listdir同樣可以列出某個目錄下都有哪些文件和子目錄,如下代碼:

四、使用os.walk

os.walk在遍歷目錄方面非常強大,它不但可以遍歷你需要的目錄,也可以遞歸遍歷子目錄且遞歸的深度可以用代碼控制,下面讓我們分別看下怎麼遍歷整個目錄樹以及怎麼控制深度吧。

os.walk默認是遍歷整個目錄樹的,如下代碼就會遞歸列印出當前目錄下所有文件:

那我們怎麼控制遍歷的深度,比如只遍歷n層呢?其實很簡單,只需要定義一個深度變數,然後到達n後跳出循環即可,如下代碼就只遍歷1層:

至此我們已經寫完4種方法了,如果你還有其他方法,歡迎評論交流。

一、nohup

nohup,即 no hangup,nohup 的用途就是讓提交的命令忽略 hangup 信號,從而使我們的進程避免中途被中斷。它可以讓 python 腳本和伺服器連接端的 session 分離,以達到退出後依舊執行:

$ chmod +x /your_path/yourscript.py   # 先設置可執行許可權$ nohup python /your_path/yourscript.py# 切記退出的 Terminal 的時候,不要 ctrl+c 退出,而是直接關閉,不然 Nohup 就被你關閉了。

如何關閉這個一直執行的進程呢:

# 找到對應的進程 PID

$ ps -ef | grep python

# 返回內容如:

user      2430     1  0 Jul03 ?        00:00:01 /usr/bin/python -tt /usr/sbin/yum-updatesd

# kill 掉該進程即可:

$ kill -9 2430

PS:nohup 在伺服器重啟之後就失效了,所以並不完美。

二、將命令寫入 Linux 啟動腳本

Linux 在啟動的時候會執行 /etc/rc.local 裡面的腳本,所以只要在這裡添加執行命令就可以:

$ vim /etc/rc.local

# 如果是 Centos 添加以下內容:

/your_path/python3.4 /your_path/yourscript.py

# 以上內容需要添加在 exit 命令前,而且由於在執行 rc.local 腳本時,PATH 環境變數未全部初始化,因此命令需要使用絕對路徑。

PS:這種方式的缺點是如果腳本掛了,那麼不會自動重新啟動。

三、使用 Supervisor 進程管理工具

詳見這篇文章:使用 Supervisor 管理伺服器後台進程,在伺服器重啟和腳本出錯後,可以完美重啟,推薦。

原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126292.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:07
下一篇 2024-10-03 23:07

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論