Quero permitir que os principais programas operem de maneira padrão e se separem do terminal assim que um aplicativo gráfico for iniciado. Neste exemplo fzf
lê caminhos de um arquivo, alimenta os arquivos e pastas selecionados para o mpv
media player:
fzf < paths.txt | mpv --playlist=-
Quando &
é adicionado ao comando fzf
nunca é iniciado interativamente:
fzf < paths.txt | mpv --playlist=- &
Embora mpv
tenha um --terminal=no
sinalizador, ele apenas desativa a entrada e saída do terminal, ainda deixando o processo mpv anexado.
desativa qualquer uso do terminal e stdin/stdout/stderr. Isso silencia completamente qualquer saída de mensagem.
Ao contrário de --really-quiet, isso também desativa a entrada e a inicialização do terminal.
Quando você coloca o
&
após o seu comando, ele se aplica a todo o comando, não apenas à segunda parte.Se você quiser executar apenas a última parte em segundo plano, você pode fazer assim:
Observe que isso não é adicionado
mpv
à lista de tarefas do shell por um motivo que não consegui encontrar. Mas parece bom para o seu caso de uso.