使用 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"

相关内容