셸 간에 백그라운드 작업 공유

셸 간에 백그라운드 작업 공유

나는 사용한다화면거기에는 10개 이상의 로컬 Bash 세션이 있습니다. 나는 vi file종종 일부 프로세스(예를 들어)를 백그라운드로 보내고 세션 사이를 전환하며, 때로는 편집하려는 파일이 이미 열려 있는 위치를 찾는 것이 매우 짜증스럽습니다.

이 화면 내의 모든 Bash 세션에서 액세스할 수 있도록 이러한 백그라운드 프로세스를 공유하는 방법이 있습니까?

답변1

아니요, 문서는 다음과 같습니다.배쉬 작업 제어서로 다른 bash 세션 간에 작업을 공유하거나 채택하는 지원에 대한 언급은 없습니다.

하지만,렙텔이를 통해 다른 세션에서 백그라운드에서 실행되는 작업을 제어할 수 있습니다. 이는 아마도 원하는 것과 충분히 유사할 것입니다.

reptyr에는 인수하려는 작업의 pid가 필요하므로 먼저 이를 찾아야 합니다. 원래 화면 창을 찾는 것보다 더 많은 작업이 필요한지 스스로 결정할 수 있습니다.

vim을 사용하여 이 작업을 수행하는 데 가장 관심이 있으신 것 같습니다(예, vi라고 하셨지만 vim이 백그라운드에서 실행된다고 가정합니다). vim -r열려 있는 모든 vim 세션과 편집 중인 파일 목록을 제공합니다. 목록을 읽고 필요한 파일을 사용하는 pid를 찾은 후 reptyr <pid>.

기본적으로 vim은 이미 다른 곳에 열려 있는 파일을 편집하는 것을 막지는 않습니다. vim -r <filename>하지만 :e원래 세션으로 돌아갈 때 파일을 다시 로드하여 새 편집 내용이 최신 버전에 적용되도록 하세요. vim은 특정 이벤트에 대해 이를 알려줄 것입니다.

답변2

문제에 대한 해결책은 다른 곳에 있다고 생각합니다. 모든 백그라운드 프로세스와 해당 screen창을 표시하는 스크립트를 작성해야 합니다.

이것이 당신의 선택이라면 몇 가지 코드를 제안하겠습니다.

관련 정보