Prima funzionava, ma ho perso tutto, ho reinstallato Ubuntu e ho dimenticato come farlo funzionare di nuovo.
Per chiunque esegua un Discourse locale sul proprio computer e lo abbia configurato per l’avvio automatico, per favore ditemi come avete fatto.
Di seguito riporto ciò che ho provato.
Attualmente ho ~/.local/bin/start-discourse:
#!/usr/bin/env bash
cd ~/softwares/discourse
bundle exec rails server -p 3030 2> ~/start-discourse-stderr.txt
e
~/.local/bin/start-discourse-daemon:
#!/usr/bin/env bash
daemon --name="local-discourse" bash start-discourse
entrambi funzionano. Ma non voglio dover eseguire start-discourse manualmente ogni volta che accedo.
Quindi ho provato diverse cose.
Usare crontab -e e aggiungere @reboot start-discourse non funziona.
Usare “Preferenze applicazioni all’avvio” non funziona. Ho provato sia start-discourse, start-discourse-daemon, e persino sleep 60 && start-discourse-daemon… Ho provato il comando sleep con la maggior parte dei metodi elencati qui.
Aggiungere un file .sh in /etc/profile.d non funziona.
.bashrc… continuo a dimenticare che viene eseguito ogni volta che si apre un nuovo terminale. Certo, potrei accontentarmi di avere start-discourse-daemon in esecuzione ogni volta che apro un terminale, ma credo che ci siano modi migliori, e in ogni caso verrebbe eseguito solo se apro il terminale.
Aggiungere start-discourse-daemon in ~/.profile genera un errore (in ~/start-discourse-stderr.txt): bundle: exec command not found. Ma funziona quando faccio logout e poi rientro.
Usare /etc/systemd/local-discourse.service seguendo questo post di Hackernoon non funziona. Sì, l’ho abilitato e avviato, e funziona quando eseguo systemctl start local-discourse, ma anche se è abilitato, non funziona dopo un riavvio.
Ho provato a fare il debug con:
cd ~/softwares/discourse
bundle exec rails server -p 3030 > ~/start-discourse-stdout.txt 2> ~/start-discourse-stderr.txt
e persino con:
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 > ~/start-discourse-stdout.txt 2> ~/start-discourse-stderr.txt
echo $(date "+%Y/%m/%d %H:%M:%S") End of script >> ~/start-discourse-log.txt
e… per tutti o quasi tutti i metodi sopra riportati, tutti i log vengono scritti nel file ~/start-discourse-log.txt. Viene persino creato ~/start-discourse-stdout.txt, ma questo file rimane di dimensione zero per sempre.
Se qualcosa di quanto sopra ha funzionato per te, per favore fammi sapere quale.