linux shell腳本啓動多終端執行命令 包括ssh遠程執行命令

項目需要,啓動的腳本太多,需要進行優化,主要包括多終端ros啓動

直接上shell代碼

gnome-terminal --title="roscore" -x bash -c "roscore"

sleep 4s
gnome-terminal --title="ccm server" -x bash -c "cd ~/ccmslam_multi_ws;
source devel/setup.bash;
roslaunch ccmslam Server.launch;"
 
gnome-terminal --title="ccm rviz" -x bash -c "cd ~/ccmslam_multi_ws;
source devel/setup.bash;
cd ~/ccmslam_multi_ws/src/ccm_slam/cslam;
rviz -d conf/rviz/ccmslam.rviz;"
 


gnome-terminal --title="avs_listen" -x bash -c "cd ~/catkin_xavs_feature;
source devel/setup.bash;
echo 'avs_listen'
rosrun ros_xavs2 listen_stream;"


gnome-terminal --title="detection" -x bash -c "cd ~/detection_ws;
source devel/setup.bash;
roslaunch darknet_ros darknet_ros.launch;"

sleep 3s
gnome-terminal --title="avs_send" -x bash -c "bash ssh_avs.sh"
gnome-terminal --title="ccm_client1_robot16" -x bash -c "bash ssh_ccm_dadao16.sh"
gnome-terminal --title="ccm_client2_robot10" -x bash -c "bash ssh_ccm_dadao10.sh"


其中包括遠程ssh的腳本,爲了避免ssh輸入密碼,
安裝sshpass傳密碼,sshpass -p password ssh user@ip
缺點:明文傳密碼
ssh_ccm_dadao16.sh如下

sshpass -p '.' ssh [email protected] "cd ccmslam_ws;
source /opt/ros/kinetic/setup.bash;
export ROS_MASTER_URI=http://192.168.3.6:11311;
export ROS_HOSTNAME=192.168.3.5;
source devel/setup.bash;
roslaunch ccmslam Client_dadao10_rgbd.launch;
"

需要注意的是這樣啓動程序在ctrl+c結束之後程序不會停止,仍然在後臺執行,所以需要手動清理進程,網上有獲取進程號然後kill 的,這裏簡單的用進程名kill

sshpass -p '.' ssh [email protected] "bash clear_all.sh;
exit
"

sshpass -p '.' ssh [email protected] "bash clear_all.sh;
exit
"

sshpass -p '.' ssh [email protected] "bash clear_all.sh;
exit
"


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章