cron을 사용하여 tmux의 새 세션을 실행한 다음 명령을 실행하세요.

cron을 사용하여 tmux의 새 세션을 실행한 다음 명령을 실행하세요.

내 cron에서는 tmux가 실행되고 있지 않음을 감지하면 자동으로 tmux에서 서비스를 시작합니다. 내 bash 스크립트의 나머지 부분은 작동하지만 tmux 세션이 존재하지 않으면 오류가 발생합니다. 그래서 아래에 "tmux new ENTER"를 추가했습니다. 그러나 여전히 tmux 세션이 시작되지 않습니다. tmux 세션을 수동으로 시작하면 코드가 작동하고 send-keys 명령이 실행됩니다.

새로운 tmux 세션이 cron에서 시작되지 않는 이유를 이해하려고 합니다. 어떤 아이디어가 있나요?

  /usr/bin/pkill -9 java
  /usr/bin/tmux new ENTER
  sleep 3
  /usr/bin/tmux send-keys -t 0 "cd /home/xxx/bbb;./run.sh" ENTER
  echo "$(date) ${1} RESTARTED NODE"

답변1

/usr/bin/tmux new-session -d -s ENTER더 잘 추적하려면 및 를 사용하십시오 /usr/bin/tmux detach -s ENTER.

따라서 스크립트는 다음과 같습니다.

  /usr/bin/pkill -9 java
  /usr/bin/tmux new-session -d -s ENTER
  /usr/bin/tmux detach -s ENTER
  sleep 3
  /usr/bin/tmux send-keys -t 0 "cd /home/xxx/bbb;./run.sh" ENTER
  echo "$(date) ${1} RESTARTED NODE"

관련 정보