tmux 세션 생성과 명령을 실행하는 창 및 이 작업을 수행하기 위한 스크립트를 자동화하려고 합니다. 명령줄에서 실행하면 제대로 작동하지만 cron 또는 cron에서 실행하면 실패합니다. 백그라운드 /nohup 프로세스에서.
그렇다면 tmux 세션/창을 생성하려면 tmux에서 대화형 TTY 세션이 필요하다는 제한 사항이 있나요?
실제로 tmux를 "헤드리스"로 실행할 수 있는지에 대한 보다 일반적인 질문을 하고 있지만 이 질문에서 내가 하려는 작업에 대한 자세한 내용은 다음과 같습니다. cron의 tmux가 "서버 손실"로 인해 실패합니다.
"백그라운드 프로세스"란 tmux 세션을 생성하려고 하는데 창 중 하나가 조건을 찾기 위해 반복하는 스크립트를 실행하고 있으며 발견되면 tmux 세션을 종료한 다음 다시 생성하는 다른 스크립트를 실행한다는 것입니다. 이것은 종료하지만 생성하지는 않습니다. 아마도 스크립트가 종료되는 세션 내에서 실행 중이기 때문일 것입니다. 그러나 &
백그라운드를 사용하거나 nohup
tmux 세션의 프로세스를 종료/재생성하려고 하면 성공적으로 종료되지만 아무것도 생성되지 않습니다. 오류가 있었던 것 같지는 않습니다.)
나는 그것에 대해 잘 알지 못합니다 screen
. 실패한 곳에서 성공할 수 있습니까?
어떤 제안이 있으십니까?
답변1
tmux에게 새 세션을 시작하고 즉시 분리하도록 지시할 수 있습니다.
tmux new-session -d
이름을 지정하면 세션이 이미 실행 중인지 확인할 수 있습니다.
tmux has-session -t session_name || tmux new-session -d -s session_name