Compartilhe trabalhos em segundo plano entre shells

Compartilhe trabalhos em segundo plano entre shells

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

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

Responder1

Não, a documentação paracontrole de trabalho bashnão menciona nenhum suporte para compartilhamento ou adoção de empregos entre diferentes sessões do bash.

No entanto,reptirpermitirá que você assuma o controle de um trabalho que estava em segundo plano em outra sessão, que pode ser próximo o suficiente do que você deseja.

reptyr requer o pid do trabalho que você deseja assumir, então você precisa encontrar esse pid primeiro. Você pode decidir por si mesmo se isso é mais trabalhoso 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 presumo que o vim é o que você está executando nos bastidores). vim -rfornecerá uma lista de todas as sessões abertas do vim, junto com os arquivos que elas estão editando. Leia a lista, encontre o pid que está usando o arquivo desejado e execute reptyr <pid>.

Para ser mais completo, o vim não impedirá você de apenas editar um arquivo que já está aberto em outro lugar - usando vim -r <filename>- mas lembre-se de recarregar o arquivo novamente :equando retornar à sessão original, para que suas novas edições sejam aplicadas à versão mais recente. vim irá lembrá-lo sobre isso em determinados eventos.

Responder2

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 screenjanela.

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

informação relacionada