Пожалуйста, ознакомьтесь со следующими ссылками. Spark - это сложная настройка, поэтому вы должны понимать, как она интегрируется со службой инициализации Ubuntu.
Скопируйте и вставьте это в терминал (как root), чтобы создать /root/boot.sh и запустите его при загрузке:
bootscript=/root/boot.shservicename=custombootcat > $bootscript <<EOF#!/usr/bin/env bashecho "$bootscript ran at \$(date)!" > /tmp/it-worksEOFchmod +x $bootscriptcat > /etc/systemd/system/$servicename.service <<EOF[Service]ExecStart=$bootscript[Install]WantedBy=default.targetEOFsystemctl enable $servicename
Для изменения параметров, например, для использования другого $bootscript, просто установите эту переменную вручную и пропустите эту строку при копировании команд.
После выполнения команд вы можете редактировать /root/boot.sh используя ваш любимый редактор, и он будет запущен при следующей загрузке. Вы также можете немедленно запустить его, используя:
Привет @WillemK, я уже просматривал эту страницу. Эта проблема, которую я обнаружил, заключается в том, что я не могу просто заменить exec на ExecStart=. Кроме того, я раньше не использовал upstart.
@George да, я тоже так думаю, однако использование относительных путей в сервисах может привести к ошибкам из-за другого ПУТИ. Я предлагаю вместо этого использовать абсолютные пути.
@AndreaLazzarotto, я пытался использовать абсолютный путь, но, как вы можете видеть в моем ответе на данный ответ, я получаю ошибку абсолютного пути. Файл .sh находится по адресу `/usr/lib/spark-2.1/sbin/start-all.sh - и это то, что я вам предоставил. Разве это не абсолютный путь?