활성 상태를 유지하기 위해 tmux 세션에서 실행하는 봇이 있습니다. 가끔 서버가 재부팅되고 집에 없거나 인터넷이 연결되지 않으면 봇이 오프라인 상태를 유지합니다. 크론 작업을 추가하여 봇을 시작할 수 있습니다. 이런 스크립트가 있어요
tmux new -s bot
bash '/home/user/bot_start.sh'
하지만 그것이 하는 일은 새로운 tmux 세션을 시작하고 실행하는 것입니다.
bot_start.sh
tmux 세션 외부. 열린 tmux 세션(예: "bot")에서 스크립트를 실행하고 싶습니다.
답변1
이 tmux
명령은 세션에서 실행되어야 하는 명령을 명령줄의 인수로 사용합니다. 인수가 제공되지 않으면 대화형 쉘이 시작됩니다. 명령(또는 셸)이 종료되면 세션 tmux
도 종료됩니다.
그래서 당신은 사용할 수 있습니다
tmux new-session -s bot bash "$HOME/bot_start.sh"
그러면 새 tmux
세션이 시작되고 해당 세션에서 지정된 스크립트가 실행됩니다.
세션이 이미 존재하는지 테스트하고, 존재하는 경우 새 세션을 시작하지 않으려면 다음을 수행하세요.
! tmux has-session -t bot 2>/dev/null && tmux new-session -s bot bash "$HOME/bot_start.sh"
아니면 좀 더 자세히 말하자면,
if ! tmux has-session -t bot 2>/dev/null; then
tmux new-session -s bot bash "$HOME/bot_start.sh"
fi