tmux는 아직 실행 중이 아닌 경우 프로세스를 시작합니다.

tmux는 아직 실행 중이 아닌 경우 프로세스를 시작합니다.

광산에는 .zshrctmux 세션을 자동으로 시작하거나 세션이 이미 실행 중인 경우 세션 중 하나에 연결하거나 새 세션을 만들고 해당 세션에 연결하라는 메시지를 표시하는 몇 가지 논리가 있습니다. 이것은 모두 훌륭하지만 올바르게 구현할 수 없는 새로운 요구 사항이 있습니다. 새 세션이 시작되고 특정 프로세스가 실행되고 있지 않으면 해당 프로세스를 시작하고 프로세스가 실행 중이면 새 창을 만듭니다. 어딘가에서는 그냥 평범해요. 그냥 새 세션을 시작하세요.

irssi이 경우 자동으로 시작 하고 싶습니다.하나회의. 다음은 ( $choice위에 설명된 선택 프로세스를 기반으로) 제가 작업을 수행하는 데 가장 가까운 것입니다.

exec tmux -2 new-session -A -s $choice $(pgrep irssi || echo "irssi; new-window")

이것은 세션이 하나만 있을 때(대부분의 경우) 완벽하게 작동하지만 새 세션을 만들려고 하면 즉시 분리됩니다.

위의 조건을 다음과 같이 분류하면:

if pgrep irssi; then
  exec tmux -2 new-session -A -s $choice
else
  exec tmux -2 new-session -A -s $choice "irssi; new-window"
  # splitting out `tmux new-window` also doesn't work
fi

... 반대의 문제가 있습니다. 이제 보조(irssi가 아닌) 세션이 제대로 시작되고 즉시 분리되지 않지만 irssi 세션은 irssi 창만 가져오고 새 셸 창이 나타나지 않습니다. (이것은 첫 번째 버전보다 내가 원하는 것에 거의 틀림없이 더 가깝지만 거의 항상 하나의 세션만 있기 때문에 이 버전에서는 Prefix-c새 창에서 작업을 수행 해야 하기 때문에 승리합니다 .)

관련 정보