No exemplo git log
, apenas pressione a tecla q . Q encerra a ação atual. Q também funciona no comando more
e em outros.
Quando executo comandos e quero sair, basta pressionar Ctrl + C e ele funciona. Mas há momentos em que isso não funciona, e a única maneira de executar outro comando é fechar o terminal e abrir um novo. Eu gostaria de saber como forçar a saída. Por exemplo, acontece quando eu corro:
git log
Ele começa a relatar todos os commits, e se eu pressionar ESC ou END eu posso ler as palavras END
e ESC
na parte inferior, mas nada acontece se eu pressioná-los. Então o que isso significa? Qual é a maneira de terminar qualquer comando?
No exemplo git log
, apenas pressione a tecla q . Q encerra a ação atual. Q também funciona no comando more
e em outros.
Depende se o processo em execução respeita o sinal específico que está sendo dado. Por exemplo, nos sistemas Linux, o "ctrl + c" fornece um SIGINT. Você também pode tentar um "ctrl + z" para ver se ele respeita um SIGTSTP. Isso na verdade não mata o processo, então depois, se você quiser terminar, terá que encontrar o ID do trabalho e matá-lo. Um comando padrão kill
envia um SIGTERM e um kill -9
envia um SIGKILL. Naturalmente, para os comandos kill você precisa abrir um novo terminal e determinar o ID do processo que deseja matar. No final, não há "bala de prata". O SIGKILL é frequentemente considerado o mais "strong", mas também é o mais severo e é recomendado apenas como último recurso, uma vez que não permite que o processo seja encerrado normalmente. Aqui está um link para uma lista mais completa de sinais:
Muitos projetos considerarão um bug se não manipularem certos sinais adequadamente. Portanto, é sempre uma opção registrar um bug com o projeto que não está respondendo a um "ctrl + c" e ver se eles vão consertá-lo para lidar com o SIGINT de uma forma esperada.