Ctrl + C에서 adb 쉘이 종료되지 않도록하는 방법


11

I 때 adb shell(Windows 바탕 화면에서) 내 장치로, 그리고 거기에 몇 가지 명령을 실행, 때로는 그 명령을 종료합니다. 표준 유닉스 방법은 Ctrl+C키 조합을 사용하는 것입니다. 그러나 그렇게하면 전체가 adb shell종료됩니다.

쉘 자체가 아닌 쉘 내부의 현재 프로그램 만 어떻게 종료 할 수 있습니까?


<kbd> Ctrl </ kbd> + <kbd>] </ kbd>가 효과가 있다고 주장하는 포럼 게시물을 읽었지만 운이없이 시도했습니다. 귀하의 마일리지가 다를 수 있습니다. SIGINT를 캡처하지 않기 때문에 adb가 Ctrl-C를 전달할 수있는 방법이 없습니다. 표준 Ctrl-V 방법 은 Ctrl-C에서 작동하지 않는 것 같습니다 ^J. 불행히도 Enter를로 변환했습니다 .
Matthew 읽기

답변:


13

나는 이것에 대한 일종의 해결책을 찾았습니다 (적어도 루팅 된 전화의 경우). 전화가 루팅 된 경우 busybox대부분 설치되었을 수 있습니다. sttybusybox의 일부입니다.

stty intr ^ x

Ctrl+ X를 재정의 명령으로 사용하기 위해 + 를 재정의합니다 ( 예 : 이전의 Ctrl+) C.


3
꽤 굉장합니다.
Matthew 읽기


3

top프로세스 를 중지 하고 다음 순서로 다음을 입력하여 셸을 계속 유지할 수있었습니다 .

C

CTRL+Z

CTRL+M

그 콤보 3 개를 모두 입력하지 않으면 멈추지 않으며 CTRL+ C를 눌러 쉘을 종료해야합니다. 다른 키 조합을 시도하여 실수로 발견했습니다. YMMV


Ctrl + Z는 프로세스를 일시 중단합니다. 예를 들어 kill 또는 killall을 사용하여 나중에 프로세스를 종료해야합니다. 이 해결 방법은 아무것도 아닌 것보다 낫습니다.
haimg

내가 "종료"했을 때 나는 깨달았다. 재미있는 것은, ctrl + z가 아니었고, ctrl + m을 할 때까지 실제로 쉘로 돌아 가지 않았으며, "c"를 먼저 입력하지 않으면 아무 것도하지 않았습니다.
Ryan Conrad

이것은 나를 위해 작동하지 않습니다 (나는 시도 vmstat하지 않았습니다 top). 흥미롭게도, 내가 누를 때 Ctrl-Z그것은 보이는 아무 일도 발생하지 않습니다 있지만, 사실은 내 입력 시작은 ADB에 바로 윈도우 쉘이 아닌 리디렉션처럼. vmstat의 adb 출력은 셸 창에 계속 표시되지만 cd C:(예를 들어) 입력 할 수 있으며 Windows 셸에서 실행됩니다. 그런 다음 Ctrl-C출력 을 누르면 출력이 중지되고 장면 뒤에서 Windows 셸에 입력 한 명령이 표시됩니다. 엄청 이상해!
Matthew 읽기

3

Ctrl+ \다음에 Enter보통 잘 작동합니다.

이것은 SIGQUIT 신호를 보내 서버에 적합하지 않을 수 있습니다 (예 : 코어 파일 덤프) Android 전화 / 태블릿에서 이것을 사용하는 데 문제가 있다고 생각하지 않습니다 (기본적으로 코어 파일을 덤프하지 않음) ). 대부분의 경우 작동하는 쉬운 솔루션입니다.


3

Windows에서는 숫자 키패드를 통해 [Alt] + [3]을 입력하면됩니다 (나중에 Enter 키를 누르는 것을 잊지 마십시오).
[Ctrl] + [c]를 쉘로 보내서 현재 명령을 종료합니다 :

D : \ Android> adb 쉘
고양이
고양이
♥
^ C

$ 이탈
출구

D : \ 안드로이드>

[Alt] + [3]은 Windows에서 ETX-Byte와 동일한 ASCII-Char ♥를 생성합니다.
당신은 또한 마음을 표시하기 위해 창을 지팡이하지 않으면 [Alt] + [0]-[3] (숫자 패드에서 [0] 및 [3]을 누른 상태에서 Alt 키를 누르고 있습니다)를 누를 수도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.