對同一個裝置開啟兩個android adb shell, 它們是跑在不同process嗎?

🖥️ ADB Shell 的行為

  • 每次執行 adb shell,其實是由電腦上的 adb client 透過 USB/TCP 與 Android 裝置上的 adbd daemon 建立一個新的連線。

  • 在裝置端,adbd 會 fork 出一個新的子程序,並啟動一個 shell(通常是 /system/bin/sh 或 /system/bin/bash,視 ROM 而定)。

  • 因此,每一個 adb shell 都對應到裝置上的一個獨立的 shell process。
    📌 具體來說

  • 如果你在同一台裝置上開兩個 adb shell,那麼裝置上會有兩個獨立的 shell process(例如兩個 /system/bin/sh)。

  • 這些 process 彼此獨立,擁有各自的 stdin/stdout,雖然都透過同一個 adbd daemon 管理。

  • 你可以在其中一個 shell 裡執行 ps -A | grep sh,就會看到多個 shell process。
    ⚡ 延伸思考

  • 這也意味著:在不同的 adb shell 裡執行的命令,彼此之間不會共享環境變數或工作目錄,除非你刻意透過檔案或 IPC 機制來溝通。

  • 不過,它們都跑在同一個使用者(通常是 shell user)底下,所以權限與資源限制是一樣的。
    👉 簡單結論:是的,兩個 adb shell 在同一裝置上會對應到不同的 process。

Also See

File2FileLast Modified
Android分析清理檔案Android分析清理檔案1:22 AM - December 07, 2025
AndroidAndroid1:22 AM - December 07, 2025