Раньше у меня всё работало, но я потерял всё, переустановил Ubuntu и забыл, как это запустить.
Если вы запускаете локальный Discourse на своём компьютере и настроили его на запуск при старте системы, пожалуйста, расскажите, как вы это сделали.
Ниже приведено то, что я уже пробовал.
У меня сейчас есть файл ~/.local/bin/start-discourse:
#!/usr/bin/env bash
cd ~/softwares/discourse
bundle exec rails server -p 3030 2> ~/start-discourse-stderr.txt
и
~/.local/bin/start-discourse-daemon:
#!/usr/bin/env bash
daemon --name="local-discourse" bash start-discourse
Оба скрипта работают. Но я не хочу запускать start-discourse вручную каждый раз при входе в систему.
Поэтому я попробовал несколько вариантов.
Использование crontab -e и добавление строки @reboot start-discourse не помогло.
Использование «Предпочтений приложений при запуске» тоже не сработало. Я пробовал start-discourse, start-discourse-daemon и даже sleep 60 && start-discourse-daemon… Для большинства методов я пробовал команду sleep.
Добавление .sh-файла в /etc/profile.d не помогло.
.bashrc… Я постоянно забываю, что этот файл выполняется при открытии каждого нового терминала. Конечно, можно мириться с тем, что start-discourse-daemon будет запускаться каждый раз при открытии терминала, но я думаю, есть лучший способ, и к тому же он сработает только если я открою терминал.
Добавление start-discourse-daemon в ~/.profile вызывает ошибку (в ~/start-discourse-stderr.txt): bundle: exec command not found. Но это работает, если я выйду из системы и войду снова.
Использование /etc/systemd/local-discourse.service согласно этому посту на Hackernoon не сработало. Да, я включил его и запустил, и команда systemctl start local-discourse работает, но даже при включённом статусе служба не запускается после перезагрузки.
Я пробовал отлаживать с помощью:
cd ~/softwares/discourse
bundle exec rails server -p 3030 > ~/start-discourse-stdout.txt 2> ~/start-discourse-stderr.txt
и даже с помощью:
echo $(date "+%Y/%m/%d %H:%M:%S") Start script >> ~/start-discourse-log.txt
cd ~/softwares/discourse
echo $(date "+%Y/%m/%d %H:%M:%S") Changed directory, executing script >> ~/start-discourse-log.txt
bundle exec rails server -p 3030 > ~/stard/discourse-stdout.txt 2> ~/start-discourse-stderr.txt
echo $(date "+%Y/%m/%d %H:%M:%S") End of script >> ~/start-discourse-log.txt
… и для всех или большинства методов выше все логи записываются в файл ~/start-discourse-log.txt. Даже создаётся файл ~/start-discourse-stdout.txt, но его размер всегда остаётся равным нулю.
Если какой-либо из вышеописанных методов сработал у вас, пожалуйста, напишите, какой именно.