Ctrl + C से बाहर निकलने से adb शेल को कैसे रोकें


11

जब मैं adb shellअपने डिवाइस (विंडोज डेस्कटॉप से) में आता हूं, और वहां कुछ कमांड चलाता हूं, तो कभी-कभी मैं उस कमांड को समाप्त करना चाहता हूं। यह करने के लिए मानक unixy तरीका Ctrl+Cकुंजी संयोजन के साथ है । हालांकि, जब मैं ऐसा करता हूं, तो पूरी तरह से adb shellसमाप्त हो जाता है।

मैं केवल शेल के अंदर ही वर्तमान प्रोग्राम को कैसे समाप्त कर सकता हूं, शेल को ही नहीं?


मैंने यह दावा करते हुए एक फोरम पोस्ट पढ़ी कि <kbd> Ctrl </ kbd> + <kbd>] </ kbd> ने काम किया, लेकिन मैंने इसे बिना किसी भाग्य के आज़माया। आपकी माइलेज भिन्न हो सकती है। प्रतीत होता है कि Ctrl-C पर adb पास होने का कोई तरीका नहीं है, क्योंकि यह SIGINT को कैप्चर नहीं करता है। Ctrl-C के लिए मानक Ctrl-V विधि काम नहीं करती है, हालांकि इसने ^Jदुर्भाग्य से Enter को परिवर्तित कर दिया है ।
मत्ती

जवाबों:


13

मुझे इसके लिए वर्कअराउंड (कम से कम एक रूटेड फोन के लिए) मिला। यदि कोई फ़ोन रूट किया गया है, busyboxतो संभवतः सबसे अधिक स्थापित है। sttyबिजीबॉक्स का हिस्सा है।

स्टटी इंट्रा ^ एक्स

Redefines Ctrl+ Xएक को तोड़ने आदेश, जैसे क्या था पहले के रूप में कार्य करने के लिए Ctrl+ C


3
यह बहुत बढ़िया है।
मैथ्यू पढ़ें


3

मैं इस topप्रक्रिया को रोकने में सक्षम था और अभी भी इस क्रम में निम्नलिखित टाइप करके खोल में रह सकता हूं :

C

CTRL+Z

CTRL+M

अगर मैंने उन सभी कॉम्बो के 3 टाइप नहीं किए तो यह बंद नहीं होगा और मुझे शेल से बाहर निकलने के लिए CTRL+ करना होगा C। मैंने इसे केवल चाबियों के विभिन्न संयोजनों की कोशिश करके पाया और इसे दुर्घटना से पाया। YMMV


Ctrl + Z एक प्रक्रिया को निलंबित करता है, उदाहरण के लिए आपको इसे बाद में मारने या मारने के साथ मारना होगा। हालांकि, यह वर्कअराउंड कुछ भी नहीं से बेहतर है ...
हैमग

मुझे एहसास हुआ कि जब मैंने एक "निकास" किया था। अजीब बात है, यह ctrl + z कि कुछ भी नहीं किया गया था, यह वास्तव में शेल में वापस नहीं आया जब तक कि मैंने ctrl + m नहीं किया, और अगर मैं पहले "c" टाइप नहीं करता, तो यह कुछ भी नहीं करता।
रयान कॉनरैड

यह मेरे लिए काम नहीं करता है (मैंने हालांकि कोशिश vmstatनहीं की top)। दिलचस्प है, जब मैं दबाता हूं तो Ctrl-Zऐसा लगता है कि कुछ भी नहीं होता है, लेकिन वास्तव में मेरा इनपुट सीधे विंडोज शेल पर रीडायरेक्ट होना शुरू होता है और एडब करने के लिए नहीं। adb का आउटपुट (vmstat से) शेल विंडो में दिखाई देता रहता है, लेकिन मैं टाइप कर सकता हूं cd C:(उदाहरण के लिए) और यह विंडोज़ शेल में निष्पादित होगा। अगर मैं दबाया Ctrl-Cगया तो आउटपुट बंद हो जाएगा और मैं उस कमांड को देखूंगा जिसे मैंने पर्दे के पीछे विंडोज शेल में टाइप किया था। बहुत अजीब!
मैथ्यू पढ़ें

3

Ctrl+ के \बाद Enterआमतौर पर ठीक काम करता है।

यह एक संकेत संकेत भेजेगा जो एक सर्वर के लिए उपयुक्त नहीं हो सकता है (उदाहरण के लिए एक कोर फ़ाइल को डंप करता है) लेकिन मुझे नहीं लगता कि एंड्रॉइड फोन / टैबलेट पर इसका उपयोग करने में कोई समस्या है (जो डिफ़ॉल्ट रूप से कोर फ़ाइल को डंप नहीं करता है )। आसान समाधान जो ज्यादातर मामलों में काम करता है।


3

Windows पर, आप बस [Alt] + [3] को numpad के माध्यम से दर्ज कर सकते हैं (बाद में एंटर दबाना न भूलें)।
यह [Ctrl] + [c] शेल को भेजता है जिससे वर्तमान कमांड समाप्त होती है:

D: \ Android> adb शेल
$ बिल्ली
बिल्ली
♥
^ सी

$ बाहर निकलें
बाहर जाएं

डी: \ एंड्रॉयड>

ध्यान दें कि [Alt] + [3] विंडोज में ASCII-Char ♥ का निर्माण करता है जो ETX-बाइट के बराबर होता है।
आप [Alt] + [०] - [३] दबा सकते हैं ([०] और [३] स्तब्धता पर दबाते हुए Alt कुंजी दबाए रखें) यदि आप दिल दिखाने के लिए खिड़कियां नहीं भटकते;)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.