Запускать скрипт автоматически при запуске: скрипт работает неправильно

64
6

Я хочу запустить скрипт bash при запуске моей платы Parallella, которая имеет Ubuntu. Я искал в SO и нашел инструкцию здесь:

Мой скрипт bash - test.sh, который имеет только одну строку:

echo "Hello World" &> /home/qsp/WIP/test/hello.txt

1) Первый способ, которым я пытался, - добавить /etc/rc.local путь aboslute к скрипту:

/home/qsp/WIP/test/test.sh

2) Второй способ, который я пробовал, - следовать приведенному выше ответу.

sudo mv test.sh /etc/init.d/
sudo update-rc.d test.sh defaults

В обоих случаях сценарий выполнялся после загрузки, и в папке был создан файл hello.txt. Однако содержимое файла пуст (а владелец - root). Интересно, я что-то упустил. Спасибо.

====== UPDATE =======

Следуя ответу Skynet, я меняю свой сценарий на:

echo "Hello World" | tee /home/qsp/WIP/test/hello.txt

и сценарий записывается в файл после правильной загрузки. У меня есть другой вопрос, почему мой оригинальный скрипт с &> не работал, хотя он все еще работает, если выполняется из командной строки.

спросил(а) 2021-01-19T14:35:51+03:00 6 месяцев, 2 недели назад
1
Решение
89

Вы должны сделать это в стиле сценария init, как цитируется первым вопросом SO. Вот так:

case "$1" in
start)
#startup code
;;
stop)
#stop code
;;
restart)
#restart code
;;
esac

Также взгляните на https://github.com/fhd/init-script-template/blob/master/template

ответил(а) 2021-01-19T14:35:51+03:00 6 месяцев, 2 недели назад
78

После редактирования /etc/rc.local и добавления ваших команд,

проверьте, что ваш скрипт должен всегда заканчиваться exit 0.

Также убедитесь, что вы сделали его исполняемым с помощью команды chmod

chmod 777 test.sh

Измените линию вывода как

echo "Hello World" | tee /home/qsp/WIP/test/hello.txt

ответил(а) 2021-01-19T14:35:51+03:00 6 месяцев, 2 недели назад
64

Создайте файл.desktop и настройте свой ystem для автоматического запуска во время входа в систему

Создайте файл.desktop, как показано ниже.

    $ vim ~/.config/autostart/test_script.desktop

добавить информацию ниже

   [Desktop Entry]
Type=Application
Name=Test script
Exec=~/test.sh
X-GNOME-Autostart-enabled=true

Обратите внимание, что ~/test.sh указывает на созданный вами скрипт. Сохрани это.

Сделайте его исполняемым:

$ chmod o + x ~/.config/autostart/test_script.desktop

Перезагрузитесь, и для следующего входа ваш скрипт должен работать.

ответил(а) 2021-01-19T14:35:51+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема