Às vezes acontece comigo que pressiono CTRL+ Zpor acidente e meu aplicativo desaparece em segundo plano. Eu sei, posso trazê-lo de volta fg
, então não é grande coisa. Mas estou pensando em desligar isso job control
de qualquer maneira. Em toda a minha vida, não consigo me lembrar de nenhum momento em que precisei, apenas me parece uma relíquia do passado.
Posso desativar job control
totalmente? Ou estou faltando alguma coisa e esse recurso pode ser útil? Como eu iria desativá-lo no meu.bashrc
ATUALIZAR:
Eu tentei set +m
conforme sugerido por @Falsenames. No entanto, isso só funciona quando eu digito no terminal. Adicionar set +m
ao meu .bashrc
não tem efeito.
Responder1
Você pode adicionar o seguinte em sua linha de comando para parar de usar o modo de monitoramento.
definir +m
Se você realmente precisar da funcionalidade ctrl-z posteriormente, basta digitar 'set -m' para ativar o monitoramento dessa sessão.
Decara, festa. Observe que isso é para '-m', com "+m" alternando essa configuração para desabilitar.
set [+abefhkmnptuvxBCEHPT] [+o option] [arg ...]
....
-m
Monitor mode. Job control is enabled. This option is on by default for interactive
shells on systems that support it (see JOB CONTROL above). Background processes
run in a separate process group and a line containing their exit status is printed
upon their completion.
Como último esforço, você pode querer compilar manualmente uma versão do bash sem o sinalizador "--enable-job-control". Aqui está um rápidoguia de instalaçãodo GNU. Se você optar por seguir esse caminho, NÃO substitua /bin/bash apenas no caso de processos em segundo plano serem executados através do bash expect job control. Em vez disso, crie um /bin/bash.alt ou outro arquivo. Seu shell padrão pode ser alterado para este alternativo executando usermod ou editando /etc/passwd como root.
Responder2
stty susp undef
desativará o sinal de suspensão iniciado pelo teclado para a maioria dos programas; no entanto, comandos como vim e emacs que possuem ligações específicas Ctrl-Zterão que ser reconfigurados individualmente. No emacs, você pode executar (global-unset-key "\C-z")
.
Você pode adicionar esse comando stty ao seu ~/.bash_profile
ou ~/.profile
, sair, fazer login novamente.
Responder3
Ou estou faltando alguma coisa e esse recurso pode ser útil?
Para responder a esta parte da pergunta: Cz/ fg
combo é essencial para meu fluxo de trabalho no vim. Por exemplo, eu prefiro Cz >> git commit
a fg
usar wrappers git de dentro do vim.
Cz ajuda a tratar o shell como IDE, em conformidade com o "faça uma coisa"princípio. (Isso em vez de "editor como IDE").
Responder4
Adicione trap "" SIGTSTP
em seu script. Ele captará o sinal e o ignorará.
#!/bin/bash
trap "" SIGTSTP
watch date