Eu já sei que pressionar para ctrl+z
interromper o aplicativo, então posso enviá-lo para segundo plano com o bg
comando, mas isso significa que há um breve período de tempo em que o aplicativo é parado.
Como envio o aplicativo diretamente para o plano de fundo sem pará-lo?
shell
command-line
background-process
jobs
trusktr
fonte
fonte
ctrl+z
seguido de executar o comandobg
. Existe uma combinação única de teclas para enviar o aplicativo para segundo plano?Respostas:
O envio de um aplicativo de primeiro plano para o segundo plano requer cooperação do terminal e do shell. O terminal não pode fazer isso sozinho, porque o shell precisa definir o grupo de processos em primeiro plano. O shell não pode fazer isso sozinho, porque o terminal precisa processar o pressionamento de tecla (o shell não está em primeiro plano, portanto, não pode receber um pressionamento de tecla).
Uma aproximação aproximada é enviar o aplicativo para o plano de fundo muito rápido. Afinal, um aplicativo compartilha o tempo da CPU com outros e uma pausa de alguns centésimos de segundo não deve importar. (Aplica-se a aplicativos em tempo real, portanto, inicie-os em segundo plano.) Uso uma ligação de shell para Ctrl+ Zque envia o último trabalho em primeiro plano para o segundo plano. Dessa forma, pressionar Ctrl+ Z Ctrl+ Zenvia um trabalho para o segundo plano com um tempo mínimo de suspensão.
Aqui está minha ligação do zsh, que também “ coloca em segundo plano” um comando meio digitado quando a linha de comando não está vazia .
Em inglês, para os não usuários do zsh na platéia:
Defina uma função de shell que faça o seguinte:
Vincule esta função a Ctrl+ Z.
Se você deseja apenas o comportamento de segundo plano, independentemente de a linha de comando estar vazia:
Não sei se você pode fazer o mesmo no bash. Deve ser tão fácil quanto
bind -x '"\C-z": bg'
, exceto que o bash deixa o caractere de parada tty no lugar, para nunca receber Ctrl+ Zcomo entrada.fonte
Você pode colocar em segundo plano uma tarefa adicionando um
&
depois dela.Por exemplo
tail -f /var/log/messages &
, a tarefa será executada em segundo plano imediatamente.Como sempre, você pode ver quais tarefas foram executadas em segundo plano com o
jobs
comando.Obviamente, isso pressupõe que você ainda não executou o comando.
fonte
ctrl+z
e executebg
na linha de comando para que o aplicativo seja executado em segundo plano. Mas entre pressionarctrl+z
e executarbg
, há um prazo para que o aplicativo esteja completamente em pausa. Eu não quero isso Como envio imediatamente para segundo plano ?O segundo plano de um comando é feito anexando um e comercial ao comando.
Se já estiver em execução, sua única opção é pará-lo e, em segundo plano.
fonte