Как запустить скрипт в rc.local

Я новичок в этой платформе. У меня вопрос о rc.local. Я создал скрипт для автоматического запуска roscore и roslaunch rosbridge_server rosbridge_websocket.launch. Это имя скрипта является авто и содержимое скрипта:

#!/bin/sh cd $home xterm -hold -e "roscore" & xterm -hold -e "roslaunch rosbridge_server rosbridge_websocket.launch" exit 0

Я должен запустить этот скрипт в 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

Где я ошибаюсь? Я следую за решением с 9-ю шагами. Как я могу сделать & quot; rc.local & quot; выполняться при запуске? но это не сработало.

3
задан 10 November 2017 в 19:43

8 ответов

Проблема решена полностью. Решение приведено ниже.

Сначала создайте скрипт, который вы хотите запустить в нем. Я хочу запустить rosbridge_websocket автоматически при запуске компьютера. Имя моего скрипта авто и расположено по адресу home/username/auto.sh. Содержимое скрипта:

#!/bin/bash

cd $home

source /opt/ros/indigo/setup.bash 

roslaunch rosbridge_server rosbridge_websocket.launch

exit 0

Вы должны проверить, что ваш файл сценария является исполняемым. Для исполняемого файла сценария используйте команду: $ sudo chmod u+x /home/username/auto.sh

Чтобы запустить этот скрипт в rc.local, который находится в /etc/rc.local. Он создается с помощью gksudo gedit /etc/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.

/home/username/auto.sh

exit 0

Наконец, вы должны перезагрузить систему, используя $ sudo reboot. Когда вы запускаете компьютер, ваш скрипт полностью работает.

0
ответ дан 22 May 2018 в 23:12

Проблема решена полностью. Решение приведено ниже.

Сначала создайте скрипт, который вы хотите запустить в нем. Я хочу запустить rosbridge_websocket автоматически при запуске компьютера. Имя моего скрипта авто и расположено по адресу home/username/auto.sh. Содержимое скрипта:

#!/bin/bash cd $home source /opt/ros/indigo/setup.bash roslaunch rosbridge_server rosbridge_websocket.launch exit 0

Вы должны проверить, что ваш файл сценария является исполняемым. Для исполняемого файла сценария используйте команду: $ sudo chmod u+x /home/username/auto.sh

Чтобы запустить этот скрипт в rc.local, который находится в /etc/rc.local. Он создается с помощью gksudo gedit /etc/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. /home/username/auto.sh exit 0

Наконец, вы должны перезагрузить систему, используя $ sudo reboot. Когда вы запускаете компьютер, ваш скрипт полностью работает.

0
ответ дан 18 July 2018 в 14:15

Проблема решена полностью. Решение приведено ниже.

Сначала создайте скрипт, который вы хотите запустить в нем. Я хочу запустить rosbridge_websocket автоматически при запуске компьютера. Имя моего скрипта авто и расположено по адресу home/username/auto.sh. Содержимое скрипта:

#!/bin/bash cd $home source /opt/ros/indigo/setup.bash roslaunch rosbridge_server rosbridge_websocket.launch exit 0

Вы должны проверить, что ваш файл сценария является исполняемым. Для исполняемого файла сценария используйте команду: $ sudo chmod u+x /home/username/auto.sh

Чтобы запустить этот скрипт в rc.local, который находится в /etc/rc.local. Он создается с помощью gksudo gedit /etc/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. /home/username/auto.sh exit 0

Наконец, вы должны перезагрузить систему, используя $ sudo reboot. Когда вы запускаете компьютер, ваш скрипт полностью работает.

0
ответ дан 24 July 2018 в 20:21

Проблема решена полностью. Решение приведено ниже.

Сначала создайте скрипт, который вы хотите запустить в нем. Я хочу запустить rosbridge_websocket автоматически при запуске компьютера. Имя моего скрипта авто и расположено по адресу home/username/auto.sh. Содержимое скрипта:

#!/bin/bash cd $home source /opt/ros/indigo/setup.bash roslaunch rosbridge_server rosbridge_websocket.launch exit 0

Вы должны проверить, что ваш файл сценария является исполняемым. Для исполняемого файла сценария используйте команду: $ sudo chmod u+x /home/username/auto.sh

Чтобы запустить этот скрипт в rc.local, который находится в /etc/rc.local. Он создается с помощью gksudo gedit /etc/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. /home/username/auto.sh exit 0

Наконец, вы должны перезагрузить систему, используя $ sudo reboot. Когда вы запускаете компьютер, ваш скрипт полностью работает.

0
ответ дан 31 July 2018 в 13:40

rc.local выполняется до того, как доступен графический пользовательский интерфейс (т. е. X). Поэтому выполнение xterm в вашем скрипте auto.sh WILL завершается ошибкой. Если вы хотите, чтобы xterm всплывал при запуске, вам нужно открыть его через «Запуск приложений» Ubuntu. Запуск сценария с привилегиями root будет немного более развитым, так как вам нужно будет установить для него запись NOPASSWD в файле /etc/sudoers и убедиться, что он доступен только для прав root.

1
ответ дан 22 May 2018 в 23:12
  • 1
    Как я уже сказал, я выполнил решение с 9 шагами в askubuntu.com/questions/9853/… – moguztas 26 April 2017 в 11:21
  • 2
    Затем в rc.local выведите вывод в файл следующим образом: /path/to/auto.sh > /home/user/autosh.log и посмотрите, есть ли какие-либо ошибки, которые могут дать вам ключ. Также см. Мое редактирование! – con-f-use 26 April 2017 в 12:29

rc.local выполняется до того, как доступен графический пользовательский интерфейс (т. е. X). Поэтому выполнение xterm в вашем скрипте auto.sh WILL завершается ошибкой. Если вы хотите, чтобы xterm всплывал при запуске, вам нужно открыть его через «Запуск приложений» Ubuntu. Запуск сценария с привилегиями root будет немного более развитым, так как вам нужно будет установить для него запись NOPASSWD в файле /etc/sudoers и убедиться, что он доступен только для прав root.

1
ответ дан 18 July 2018 в 14:15

rc.local выполняется до того, как доступен графический пользовательский интерфейс (т. е. X). Поэтому выполнение xterm в вашем скрипте auto.sh WILL завершается ошибкой. Если вы хотите, чтобы xterm всплывал при запуске, вам нужно открыть его через «Запуск приложений» Ubuntu. Запуск сценария с привилегиями root будет немного более развитым, так как вам нужно будет установить для него запись NOPASSWD в файле /etc/sudoers и убедиться, что он доступен только для прав root.

1
ответ дан 24 July 2018 в 20:21
  • 1
    Как я уже сказал, я выполнил решение с 9 шагами в askubuntu.com/questions/9853/… – moguztas 26 April 2017 в 11:21
  • 2
    Затем в rc.local выведите вывод в файл следующим образом: /path/to/auto.sh > /home/user/autosh.log и посмотрите, есть ли какие-либо ошибки, которые могут дать вам ключ. Также см. Мое редактирование! – con-f-use 26 April 2017 в 12:29

rc.local выполняется до того, как доступен графический пользовательский интерфейс (т. е. X). Поэтому выполнение xterm в вашем скрипте auto.sh WILL завершается ошибкой. Если вы хотите, чтобы xterm всплывал при запуске, вам нужно открыть его через «Запуск приложений» Ubuntu. Запуск сценария с привилегиями root будет немного более развитым, так как вам нужно будет установить для него запись NOPASSWD в файле /etc/sudoers и убедиться, что он доступен только для прав root.

1
ответ дан 31 July 2018 в 13:40
  • 1
    Как я уже сказал, я выполнил решение с 9 шагами в askubuntu.com/questions/9853/… – moguztas 26 April 2017 в 11:21
  • 2
    Затем в rc.local выведите вывод в файл следующим образом: /path/to/auto.sh > /home/user/autosh.log и посмотрите, есть ли какие-либо ошибки, которые могут дать вам ключ. Также см. Мое редактирование! – con-f-use 26 April 2017 в 12:29

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

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