저는 tmux 세션을 사용하여 libvirt를 사용하여 가상 머신을 생성하는 일부 Python 코드(/opts/...에 저장된 가상 환경을 사용합니다. Python 바이너리는 복사되었지만 연결되지 않음)를 실행하는 스크립트를 실행하고 있습니다. 스크립트가 완료된 후 virsh list --all
이 tmux 세션을 실행 하면 머신이 표시되지 않습니다. 내가 실행할 때 sudo virsh list --all
그것들이 나타납니다 . 세션을 종료하면 virsh list --all
가상 머신이 예상대로 표시됩니다. 또한 이후에 생성하는 새 tmux 세션에도 예상대로 나열됩니다. 무슨 일이 일어났으며 이 문제를 해결하는 방법은 무엇입니까?
tmux 외부에서 스크립트를 실행하면 가상 머신 목록이 작동합니다 virsh list --all
.
답변1
이것이 문제가 해결되는지 모르겠습니다. 그러나 다음은 내 문제를 해결했습니다.
- 모든
tmux
세션을 중지합니다.- 실제로 모든 것이므로
tmux
더 이상 시스템에서 실행되지 않습니다.
- 실제로 모든 것이므로
- 로그아웃
- 다시 로그인하세요
- 새로 시작하다
tmux
이제 virsh list --all
예상대로 작동합니다.tmux
내 쪽의 문제는 libvirt
내가 시작한 후에 내 사용자가 그룹에 추가된다는 것입니다 tmux
. 따라서 그 안에 있는 모든 대화는 tmux
심지어 새로운 대화라도 아직 그룹화되지 않습니다 libvirt
.
tmux
새로운 tmux
호출도 여전히 동일한 이전 서버에서 시작되기 때문에 이는 성가신 일입니다 tmux
(현재 서버에서 시작한 다음 Unix 소켓을 통한 FD 패스를 통해 서버로 전달될 수 있지만 작동 방식은 tmux
아닙니다 . 한숨). 그래서 모든 것들이 이 서버와 함께 사라질 것입니다. (저는 서버와 모든 클라이언트가 그것을 보유하고 있어서 그들 중 하나라도 죽더라도 정말 나쁜 일은 일어나지 않기를 tmux
바랍니다 ).tty
tmux
그리고 tmux
서버가 너무 자주 충돌합니다. tmux
1,000개의 가상 머신에서 실행할 때 1년에 한 번은 하루에 세 번을 의미합니다. 충돌 확률이 10^-20("충돌 가능성이 더 높음")만큼 낮더라도 tmux
요즘 모든 컴퓨터는 최소한 초당 10^10 명령을 실행하므로 충돌이 너무 자주 발생한다는 의미입니다. 이는 대략 오늘날을 의미합니다. , 비행기 추락 사고는 350년마다 발생합니다.
계산 단위가 1,000억 개이고 충돌당 작업 손실이 5달러라는 대략적인 추정치에도 불구하고 이는 여전히 tmux
불안정한 설계로 인한 순 손실이 하루 100만 달러를 훨씬 넘을 수 있음을 의미합니다.
죄송해요. 수학만 좀 할게요. ("충돌"에는 모든 세션에 액세스할 수 없도록 하는 "정지" 또는 기타 가능성이 포함됩니다 tmux
. 그러나 정지는 문제의 가장 일반적인 원인이며 tmux
그다지 치명적이지는 않습니다. 왜냐하면 제가 한때 Stumbled across a 조잡한 스크립트에서 작업했기 때문입니다. 어딘가 - 죄송합니다. 기억 이 나지 않습니다. tty
이로 인해 나중에 다른 문제가 발생하고 중단으로 인해 서버가 여전히 열려 있는 경우에만 작동합니다. tmux
닫은.)tty
tmux
tty