Es hat vorher funktioniert, aber ich habe alles verloren, Ubuntu neu installiert und vergessen, wie man es wieder zum Laufen bringt.
Für alle, die Discourse lokal auf ihrem Computer betreiben und so konfiguriert haben, dass es beim Start ausgeführt wird: Bitte teilt mir mit, wie ihr das gemacht habt.
Hier ist, was ich bisher versucht habe.
Aktuell habe ich ~/.local/bin/start-discourse:
#!/usr/bin/env bash
cd ~/softwares/discourse
bundle exec rails server -p 3030 2> ~/start-discourse-stderr.txt
und
~/.local/bin/start-discourse-daemon:
#!/usr/bin/env bash
daemon --name="local-discourse" bash start-discourse
Beide funktionieren tatsächlich. Aber ich möchte start-discourse nicht bei jedem Login manuell ausführen.
Also habe ich einige Dinge versucht.
Die Verwendung von crontab -e und das Hinzufügen von @reboot start-discourse funktioniert nicht.
Die Verwendung der „Einstellungen für Autostartprogramme“ funktioniert ebenfalls nicht. Ich habe sowohl start-discourse, start-discourse-daemon als auch sleep 60 && start-discourse-daemon ausprobiert … Ich habe den sleep-Befehl bei den meisten Methoden hier verwendet.
Das Hinzufügen einer .sh-Datei nach /etc/profile.d funktioniert nicht.
.bashrc … Ich vergesse ständig, dass dies bei jedem Öffnen eines neuen Terminals ausgeführt wird. Sicher, ich könnte damit leben, dass start-discourse-daemon jedes Mal läuft, wenn ich ein Terminal öffne, aber ich denke, es gibt bessere Wege, und es würde nur laufen, wenn ich das Terminal öffne.
Das Hinzufügen von start-discourse-daemon zu ~/.profile wirft einen Fehler (in ~/start-discourse-stderr.txt): bundle: exec command not found. Es funktioniert jedoch, wenn ich mich abmelde und wieder anmeldet.
Die Verwendung von /etc/systemd/local-discourse.service nach diesem Hackernoon-Beitrag funktioniert nicht. Ja, ich habe es aktiviert und gestartet, und es funktioniert, wenn ich systemctl start local-discourse ausführe, aber selbst wenn es aktiviert ist, funktioniert es nach einem Neustart nicht.
Ich habe versucht, mit folgendem zu debuggen:
cd ~/softwares/discourse
bundle exec rails server -p 3030 > ~/start-discourse-stdout.txt 2> ~/start-discourse-stderr.txt
und sogar mit:
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
Bei allen oder den meisten der oben genannten Methoden werden alle Logs in die Datei ~/start-discourse-log.txt geschrieben. Und sogar ~/start-discourse-stdout.txt wird erstellt, aber diese Datei bleibt für immer bei Größe 0.
Wenn irgendetwas davon bei euch funktioniert hat, sagt mir bitte, welches.