Compartilhe trabalhos em segundo plano entre os shells

3

Eu uso Tela com muitas (mais de 10) sessões de Bash locais dentro. Eu envio alguns processos (como vi file ) para o segundo plano e alterno entre as sessões com muita frequência e às vezes é muito chato descobrir onde o arquivo que eu tenho que editar já está sendo aberto.

Existe uma maneira de compartilhar esses processos em segundo plano para poder acessá-lo a partir de qualquer sessão do Bash dentro dessa tela?

    
por rush 08.05.2013 / 17:35

2 respostas

3

Não, a documentação do controle de trabalho bash não menciona nenhum suporte para compartilhamento ou adotando trabalhos entre diferentes sessões de bash.

No entanto, o reptyr permite que você assuma o controle de um trabalho em segundo plano em outra sessão, que pode estar próximo o suficiente o que você quer.

reptyr requer o pid do trabalho que você deseja assumir, então você tem que encontrar o pid primeiro. Você pode decidir por si mesmo se isso é mais trabalho do que apenas encontrar a janela da tela original.

Parece que você está mais interessado em fazer isso com o vim (sim, você disse vi, mas estou assumindo que vim é o que você está usando sob o capô). vim -r lhe dará uma lista de todas as sessões abertas do vim, juntamente com os arquivos que eles estão editando. Leia a lista, encontre o pid que está usando o arquivo desejado e execute reptyr <pid> .

Para ser completo, o vim não o impedirá de apenas editar um arquivo que já está aberto em outro lugar - usando vim -r <filename> - mas lembre-se de recarregar o arquivo novamente com :e quando retornar à sessão original. as edições são aplicadas à versão mais recente. O vim irá lembrá-lo sobre isso em certos eventos.

    
por 08.05.2013 / 21:54
0

Acho que a solução do seu problema está em outro lugar: você deve escrever um script que mostre todos os seus processos em segundo plano e a respectiva janela screen .

Se esta é uma opção para você, sugiro algum código.

    
por 08.05.2013 / 18:04