
나는 사용한다화면내부에는 10개 이상의 로컬 Bash 세션이 있습니다. 나는 일부 프로세스(예: )를 백그라운드로 보내고 vi file
세션 사이를 매우 자주 전환하며 때로는 편집해야 하는 파일이 이미 열려 있는 위치를 찾는 것이 매우 짜증스럽습니다.
이 화면 내의 모든 Bash 세션에서 액세스할 수 있도록 이러한 백그라운드 프로세스를 공유하는 방법이 있습니까?
답변1
아니요, 다음 문서에 대한 문서는배쉬 작업 제어다른 bash 세션 간의 작업 공유 또는 채택에 대한 지원은 언급하지 않습니다.
하지만,렙티르다른 세션에서 백그라운드로 진행된 작업을 제어할 수 있으며 이는 원하는 것과 충분히 유사할 수 있습니다.
reptyr에는 인수하려는 작업의 pid가 필요하므로 먼저 해당 pid를 찾아야 합니다. 이것이 원래 화면 창을 찾는 것보다 더 많은 작업인지 스스로 결정할 수 있습니다.
vim을 사용하여 이 작업을 수행하는 데 주로 관심이 있는 것 같습니다(예, vi라고 하셨지만 vim이 내부적으로 실행되고 있다고 가정합니다). vim -r
편집 중인 파일과 함께 열려 있는 모든 vim 세션 목록을 제공합니다. 목록을 읽고 원하는 파일을 사용하는 pid를 찾은 다음 reptyr <pid>
.
철저하게 하기 위해 vim은 이미 다른 곳에 열려 있는 파일을 편집하는 것(사용)만 막지는 않습니다. 하지만 원래 세션으로 돌아갈 때 vim -r <filename>
파일을 다시 로드하여 새로운 편집 내용이 최신 버전에 적용되도록 하는 것을 잊지 마세요 . :e
vim은 특정 이벤트에서 이에 대해 알려줄 것입니다.
답변2
문제의 해결책은 다른 곳에 있는 것 같습니다. 모든 백그라운드 프로세스와 해당 screen
창을 표시하는 스크립트를 작성해야 합니다.
이것이 당신을 위한 옵션이라면 몇 가지 코드를 제안하겠습니다.