Antes funcionaba, pero lo perdí todo, reinstalé Ubuntu y olvidé cómo hacerlo funcionar de nuevo.
Para cualquiera que ejecute un Discourse local en su computadora y lo haya configurado para que se inicie al arrancar, por favor díganme cómo lo hicieron.
A continuación está lo que he intentado.
Actualmente tengo ~/.local/bin/start-discourse:
#!/usr/bin/env bash
cd ~/softwares/discourse
bundle exec rails server -p 3030 2> ~/start-discourse-stderr.txt
y
~/.local/bin/start-discourse-daemon:
#!/usr/bin/env bash
daemon --name="local-discourse" bash start-discourse
ambos funcionan. Pero no quiero ejecutar start-discourse manualmente cada vez que inicie sesión.
Así que hay varias cosas que he probado.
Usar crontab -e y agregar @reboot start-discourse no funciona.
Usar “Preferencias de aplicaciones de inicio” tampoco funciona. Probé tanto start-discourse, start-discourse-daemon, e incluso sleep 60 && start-discourse-daemon… Probé el comando sleep con la mayoría de los métodos aquí.
Agregar un archivo .sh en /etc/profile.d no funciona.
.bashrc… Sigo olvidando que esto se ejecuta cada vez que se abre una nueva terminal. Claro, podría vivir con start-discourse-daemon ejecutándose cada vez que abro una terminal, pero creo que hay mejores formas, y además solo se ejecutaría si abro la terminal.
Agregar start-discourse-daemon en ~/.profile arroja un error (en ~/start-discourse-stderr.txt): bundle: exec command not found. Pero funciona cuando cierro sesión y vuelvo a iniciar.
Usar /etc/systemd/local-discourse.service siguiendo este post de Hackernoon no funciona. Sí, lo habilité y lo inicié, y funciona cuando ejecuto systemctl start local-discourse, pero incluso cuando está habilitado, no funciona al reiniciar.
Sí intenté depurar con:
cd ~/softwares/discourse
bundle exec rails server -p 3030 > ~/start-discourse-stdout.txt 2> ~/start-discourse-stderr.txt
e incluso 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 > ~/stard/discourse-stdout.txt 2> ~/start-discourse-stderr.txt
echo $(date "+%Y/%m/%d %H:%M:%S") End of script >> ~/start-discourse-log.txt
y… para todos o la mayoría de los métodos anteriores se imprimen todos los registros en el archivo ~/start-discourse-log.txt. Y hasta crea ~/start-discourse-stdout.txt, pero este archivo se queda con tamaño 0 para siempre.
Si algo de lo anterior funcionó para ti, por favor dime cuál.