누르면 ctrl+z
앱이 중지되고 bg
명령 을 사용하여 앱을 백그라운드로 보낼 수 있지만 앱이 중지되는 시간이 짧다는 것을 이미 알고 있습니다 .
앱을 중지하지 않고 백그라운드로 직접 앱을 보내려면 어떻게합니까?
ctrl+z
명령을 실행합니다 bg
. 앱을 백그라운드로 보내는 단일 키 스트로크 콤보가 있습니까?
누르면 ctrl+z
앱이 중지되고 bg
명령 을 사용하여 앱을 백그라운드로 보낼 수 있지만 앱이 중지되는 시간이 짧다는 것을 이미 알고 있습니다 .
앱을 중지하지 않고 백그라운드로 직접 앱을 보내려면 어떻게합니까?
ctrl+z
명령을 실행합니다 bg
. 앱을 백그라운드로 보내는 단일 키 스트로크 콤보가 있습니까?
답변:
응용 프로그램을 포 그라운드에서 백그라운드로 보내려면 터미널과 셸의 협력이 필요합니다. 쉘은 포 그라운드 프로세스 그룹을 설정해야하기 때문에 터미널은 혼자서 할 수 없습니다. 터미널은 키 누름을 처리해야하기 때문에 쉘은 단독으로 수행 할 수 없습니다 (쉘은 포 그라운드에 없으므로 키 누름을 수신 할 수 없음).
가까운 근사치는 응용 프로그램을 백그라운드로 정말 빠르게 보내는 것입니다. 결국 응용 프로그램은 다른 사람과 CPU 시간을 공유하므로 수백 분의 1 초의 일시 중지는 중요하지 않습니다. (실시간 응용 프로그램의 경우 백그라운드에서 시작해야합니다.) Ctrl+에 대한 셸 바인딩을 사용 Z하여 마지막에 작업을 백그라운드로 보냅니다. 이렇게하면 Ctrl+ Z Ctrl+를 누르면 Z일시 중단 시간이 최소화 된 채 백그라운드로 작업이 전송됩니다.
여기에 zsh 바인딩이 있는데 , 명령 행이 비어 있지 않은 경우 반 타입 명령을 "배경"으로 만듭니다.
fancy-ctrl-z () {
emulate -LR zsh
if [[ $#BUFFER -eq 0 ]]; then
bg
zle redisplay
else
zle push-input
fi
}
zle -N fancy-ctrl-z
bindkey '^Z' fancy-ctrl-z
청중이 아닌 zsh 사용자의 경우 영어로 :
다음을 수행하는 쉘 함수를 정의하십시오.
이 함수를 Ctrl+에 바인딩합니다 Z.
명령 행이 비어 있는지 여부에 관계없이 배경 동작을 원할 경우 :
function bg_ { builtin bg "$@"; }
zle -N bg_
bindkey '^Z' bg_
bash에서 똑같이 할 수 있는지 모르겠습니다. bind -x '"\C-z": bg'
bash는 tty stop 문자를 그대로두고 Ctrl+ Z를 입력으로 얻지 않는다는 점을 제외 하고는 만큼 쉬워야 합니다.
&
이후에 작업을 추가하여 백그라운드 작업을 수행 할 수 있습니다 .
예를 들어 tail -f /var/log/messages &
작업을 즉시 수행합니다.
항상 그렇듯이 jobs
명령으로 어떤 작업을 백그라운드로했는지 확인할 수 있습니다 .
물론 이것은 아직 명령을 실행하지 않았다고 가정합니다.
ctrl+z
에서을 누른 다음 bg
백그라운드에서 실행되는 앱 을 실행할 수 있습니다 . 그러나을 누르고 ctrl+z
실행하는 사이 bg
에는 앱이 완전히 일시 중지되는 기간이 있습니다. 나는 그것을 원하지 않습니다. 백그라운드로 즉시 보내려면 어떻게해야 합니까?