我正在打字
$ roscore
并且它启动成功。
$ run_roscore.sh
也成功了。run_roscore.sh:
#!/bin/bash
/opt/ros/indigo/bin/roscore
exec $SHELL
但是我已经添加了 cairo-dock 的快捷方式(或通过 alacarte 菜单),当我点击时,终端屏幕是出现并退出roscore
. 且系统中没有正在运行的进程。
Cairo-Dock 的快捷方式的命令框;
gnome-terminal -e run_roscore.sh
我以前尝试过:
run_roscore.sh
bash -c "/usr/bin/run_roscore.sh"
gnome-terminal -x roscore
gnome-terminal -e /usr/bin/run_roscore.sh
但终端总是出现并退出。我刚刚禁用了自动退出,现在,我将其写入gnome-terminal -x roscore
命令框(在 cairo-dock 或菜单项或 Alt + F2 框上)。它显示:
Failed to execute child process "roscore" (No such file or directory)
编辑:用户 luator 建议tmux
。但它不适用于 tmux。
使用gnome-terminal -e tmux
命令,终端屏幕打开并成功运行 tmux。我在 tmux 中输入了 roscore,它起作用了。我在打开的 gnome-terminal 中输入tmux -c ls
或tmux -c roscore
,它起作用了。但在快捷方式中(或 Alt + F2 运行命令),gnome-terminal -e 'tmux -c roscore'
不起作用。
我想roscore
在后台处理,或者如果没有终端屏幕就无法处理,我想启动终端并roscore
在单击快捷方式(菜单快捷方式或 cairo-dock 快捷方式)时自动调用。那么创建快捷方式的解决方案是什么?
答案1
答案2
好的,我找到了解决方案当我尝试时roscd
。我输入了;
$roscd beginner_tutorials
并说:
roscd: No such package/stack 'beginner_tutorials'
然后我输入;
$source /opt/ros/indigo/setup.bash
并且roscd
有效。
此命令已在我的 .bashrc 文件中。我还将其添加到了脚本的顶部:
#!/bin/bash
source /opt/ros/indigo/setup.bash
bash -c "/opt/ros/indigo/bin/roscore"
exec $SHELL
在 cairo-dock 的命令框中,只需:
run_roscore.sh
快捷方式的“在终端中运行“选项已选中。一切正常。