2016-09-29 2 views
0

複数のコマンドを実行していくつかのコマンドを実行していくつかのコマンドを実行していました。その後、新しい行を追加して保存し、スクリプトを実行しても機能しなくなりました。私はそれを元の状態に戻すことにしましたが、それでも機能しません。コードはまったく同じです。 screenは非常にバグがあり、もはやサポートされていないと聞いています。そのため、それが原因です。bashスクリプトを使用してTmuxを使用してLinuxで複数の終了しないコマンドを実行する方法

screen -t ur10_server 0 
stuff "cd ~/catkin_ws; source devel/setup.bash; 
" 
stuff "roslaunch ur_bringup ur10_bringup_joint_limited.launch robot_ip:=192.168.1.102 
" 

screen -t moveit 1 
stuff "sleep 3; cd ~/catkin_ws; source devel/setup.bash; 
" 
stuff "roslaunch ur10_moveit_config ur10_moveit_planning_execution.launch limited:=true 
" 

screen -t enhance_ur10 2 
stuff "sleep 10; cd ~/catkin_ws; source devel/setup.bash; 
" 
stuff "roslaunch ur10_3d_calibration ur10_nodes.launch 
" 

screen -t rviz 3 
stuff "sleep 10; cd ~/catkin_ws; source devel/setup.bash; 
" 
stuff "roslaunch ur10_moveit_config moveit_rviz.launch config:=true; 
" 

screen -t calibration_manager 4 
stuff "sleep 10; cd ~/catkin_ws; source devel/setup.bash; 
" 
stuff "rosrun ur10_3d_calibration interaction_manager.py 
" 

screen -t editor 5 
stuff "sleep 10; cd ~/catkin_ws; source devel/setup.bash; roscd ur10_3d_calibration 
" 

hardstatus alwayslastline 
hardstatus string "%{= KW} %H [%`] %{= Kw}|%{-} %-Lw%{=bW}%n%f %t%{-}%+Lw %=%C%a%Y-%M-%d" 

select 0 
bind "." next 
bind "," next 

それはスクリーン本当の.txtファイルの名前だったコマンドscreen -S real -c screen-realを、実行していた実行する方法:これは、コードです。あなたが気づいていないなら、私は薔薇と一緒に働いています。コマンドは異なるウィンドウで異なるノードを実行しました。

私は問題がscreenであると仮定しているので、代わりにTmuxを試してみることにしました。それにもかかわらず、前のスクリプトを修正する方法がわかっていれば、私はそれを公開しています。

私の問題は、Tmux用のbashスクリプトを5つのウィンドウを開き、それぞれの5つのコマンドセットを実行するにはどうすればいいですか?すべてのコマンドは終了していない、すなわち、それらは実行を終了しない。これが私がいくつかの窓を開く必要がある理由です。

私はインターネットのあらゆるところで答えを探しましたが、通常は実行するのに必要なコマンドと私の場合は他の回答で見たコードは適用されません。

詳細が必要な場合は、お問い合わせください。私は十分に明確であることを望む。

答えて

0

すでに回答が見つかりました。 これは私が、それぞれが複数の独立したコマンドを実行している、5つの窓がtmuxのセッションを開始するために書いたスクリプトです:最初の1がちょうど他にコマンドを送信するために使用されているので

tmux new-session -d -s real 

## Create the windows on which each node or .launch file is going to run 
tmux send-keys -t real 'tmux new-window -n NAME1 ' ENTER 
tmux send-keys -t real 'tmux new-window -n NAME2 ' ENTER 
tmux send-keys -t real 'tmux new-window -n NAME3 ' ENTER 
tmux send-keys -t real 'tmux new-window -n NAME4 ' ENTER 
tmux send-keys -t real 'tmux new-window -n NAME5 ' ENTER 
tmux send-keys -t real 'tmux new-window -n NAME6 ' ENTER 

## Send the command to each window from window 0 
# NAME1 
tmux send-keys -t real "tmux send-keys -t NAME1 'COMMAND' ENTER" ENTER 
# NAME2 
tmux send-keys -t real "tmux send-keys -t NAME2 'COMMAND' ENTER" ENTER 
# NAME3 
tmux send-keys -t real "tmux send-keys -t NAME3 'COMMAND' ENTER" ENTER 
# NAME4 
tmux send-keys -t real "tmux send-keys -t NAME4 'COMMAND' ENTER" ENTER 
# NAME5 
tmux send-keys -t real "tmux send-keys -t NAME5 'COMMAND' ENTER" ENTER 
# NAME6 
tmux send-keys -t real "tmux send-keys -t NAME6 'COMMAND' ENTER" ENTER 

## Start a new line on window 0 
tmux send-keys -t real ENTER 

## Attach to session 
tmux send-keys -t real "tmux select-window -t NAME5" ENTER 
tmux attach -t real 

だから、このコードは実際には6つのウィンドウを作成しますもの。最後に私はウィンドウ5を選択します。添付するとウィンドウ5が表示されます

0

あなたが探しているものは100%確信しているわけではありませんが、私の推測ではこれが答えです。次のスクリプトは、3つのウィンドウで新しいtmuxのセッションを作成します。ファイル上では/ tmp

  • viの起動デフォルトのディレクトリ(ホームディレクトリ、未設定の場合)
  • シェルセッションで開始

    • シェルセッションをあなたのホームディレクトリにある.bashrcは

    、ファイルに次のように入れて、それを保存し、それを実行します。

    tmux new-session -s foo -d 
    tmux new-window -c /tmp 
    tmux new-window 'vi ~/.bashrc' 
    

    あなたは、次のコマンドを使用してセッションに接続できます。

    $ tmux attach -t foo 
    

    コマンドの一部へのインストールを自動化することができ、多くの、多くのもの、と多くのニュアンス(C.F.があります。 tmux new-window 'vi ~/.bashrc'tmux new-window vi ~/.bashrc)。

  • 関連する問題