我对 rc.local 有疑问。我创建了一个脚本自动启动其中包括:
#!/bin/sh
cd $home
source /opt/ros/indigo/setup.bash
xterm -hold -e "/opt/ros/indigo/bin/roscore" &
xterm -hold -e "/opt/ros/indigo/bin/roslaunch rosbridge_server rosbridge_websocket.launch"
exit 0
我的目的是使用 rc.local 自动运行该脚本。rc.local 文件位于:
/etc/init.d/rc.local
rc.本地文件包含代码:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sudo ./auto.sh
sh '/home/moguztas/auto.sh'
exit 0
此代码是可执行的。我按照以下步骤操作我怎样才能让“rc.local”在启动时运行?。
但是当我使用以下命令检查代码时:
sudo /etc/init.d/rc.local start
它在终端中出现如下所示的错误:
./auto.sh: 4: ./auto.sh: source: not found
你能告诉我我的问题是什么吗?
答案1
您正在调用
/bin/sh
,在 Ubuntu 上,它是一个比 简单得多的 shell/bin/bash
,并且缺少source
命令。rc.local
运行时是否/opt/ros/indigo/
挂载?如果它是您的加密HOME
目录,则在您登录之前它将不存在。在运行时
rc.local
,X 服务器尚未启动,因此运行将xterm
不起作用。