NodeBB wont stay up using systemctl
-
I've posted something about this on here a while ago:
Empty Log
Yep that works, I updated my version here: https://gist.github.com/bdharrington7/2599927d41d30f11900f2099b8d8fc64
NodeBB Community (community.nodebb.org)
-
one important step which I have not seen here is:
systemctl enable nodebb
So for those wondering why it is not starting up after a reboot... this is the cause.
*side-note: Wait a few minutes for it to start up (if mongod/redis is on the same server)
-
@adam-poniatowski If you have to wait a few minutes for MongoDB to start up, then I bet there's some sort of systemd command to wait until the MongoDB process is up...
-
@julian yeah, its in the [unit] field in After= ... just add mongod.service and that should help, but it is not really needed.
It will keep restarting until it is working... if the service has been enabled
I tested it out a few weeks ago. One server has it, the other doesn't have it and both took the same amount of time, unfortunately. The reason is, mongod will report as started/alive/online... but the other dependencies did not start yet (one way to test, is to stop the mongod service, start it up again and immediately try to access the DB... mongod will report an error for a minute or 2, despite reporting that the service has started)
-
@adam-poniatowski I was thinking about your post and it was bugging me as I was sure i'd seen this command in the docs. Flipping through them, I found the command you describe but its in the wrong spot (install as opposed to auto run). Also realised we never actually tell the user to start Mongod service when describing how to make nodeBB autorun.
Described all this in a new ticket to get the docs updated.
https://github.com/NodeBB/NodeBB/issues/5924 -
@duke The "After=" should be in the [unit] field, as you are specifying it to start after specified services. By default (sort of) it is network.service, so that the service will start, only after the network service has started (however, it does not check if there is network connectivity, just if the service has started).
I hope that clarifies things. Maybe one should add that to the docs, as some people will think that the After=network.service, anyotherservice.service will actually checks network connectivity or that the service is working.