![cron을 사용하여 tmux의 새 세션을 실행한 다음 명령을 실행하세요.](https://linux55.com/image/206226/cron%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20tmux%EC%9D%98%20%EC%83%88%20%EC%84%B8%EC%85%98%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%9C%20%EB%8B%A4%EC%9D%8C%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EC%84%B8%EC%9A%94..png)
내 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"