script.sh: источник: не найденный

У меня есть вопрос о rc.local. Я создал сценарий auto.sh, и он включает:

#!/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.local включает код:

#!/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

Кроме того, как по терминальным ошибкам XTerm дают: error1 error2

Вы могли сказать то, что моя проблема?

0
задан 26 April 2017 в 03:11

1 ответ

  1. Вы вызов /bin/sh, который, на Ubuntu, является намного более простой оболочкой, чем /bin/bash и недостает эти source команда.

  2. В то время rc.local выполнения, /opt/ros/indigo/ смонтирован? Если это будет Ваш зашифрованный HOME каталог, то это не будет существовать, пока Вы не войдете в систему.

  3. В то время rc.local выполнения, X-сервер еще не запустился, так выполнение xterm не будет работать.

2
ответ дан 3 November 2019 в 09:11

Другие вопросы по тегам:

Похожие вопросы: