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"

関連情報