Build from source question
-
Have a quick question about building from source. Your instructions have this section after building with Yarn:
Now you have to create a config file for xo-server: $ cd packages/xo-server $ mkdir -p ~/.config/xo-server $ cp sample.config.toml ~/.config/xo-server/config.tomlThe directory I'm making, is that supposed to be under the packages/xo-server directory? The way I read it with the
~character, it appears to be the user home directory.So is it
/home/user/.config/xo-serveror/path/to/xo_source/packages/xo-server/.config/xo-server? -
So I think I figured it out. I think it is the user home directory (whatever user is running the xo-server) which is root in my case. So that directory is being created at
/root/.config/xo-server.When starting the xo-service with
yarn start, I'm getting this:root@debian:/opt/xo/packages/xo-server# yarn start yarn run v1.21.1 $ node bin/xo-server app-conf /opt/xo/packages/xo-server/config.toml +0ms app-conf /root/.config/xo-server/config.toml +3ms 2019-12-12T20:14:36.323Z xo:main INFO Configuration loaded. 2019-12-12T20:14:36.331Z xo:main INFO Web server listening on http://[::]:80 2019-12-12T20:14:36.387Z xo:xo-mixins:hooks DEBUG start start… 2019-12-12T20:14:36.520Z xo:xo-mixins:hooks WARN hook start failure: { error: { Error: Command failed with exit code 5: vgchange -an at makeError (/opt/xo/node_modules/execa/lib/error.js:56:11) at handlePromise (/opt/xo/node_modules/execa/index.js:114:26) at <anonymous> at process._tickCallback (internal/process/next_tick.js:189:7) command: 'vgchange -an', exitCode: 5, signal: undefined, signalDescription: undefined, stdout: '', stderr: ' Logical volume debian-vg/root contains a filesystem in use.\n Can\'t deactivate volume group "debian-vg" with 2 open logical volume(s)', failed: true, timedOut: false, isCanceled: false, killed: false, [Symbol(originalCallSite)]: [ CallSite {}, CallSite {}, CallSite {}, CallSite {} ], [Symbol(mutatedCallSite)]: [ CallSite {}, CallSite {}, CallSite {}, CallSite {} ] } } 2019-12-12T20:14:36.526Z xo:xo-mixins:hooks DEBUG start finished 2019-12-12T20:14:36.527Z xo:xo-mixins:hooks DEBUG clean start… 2019-12-12T20:14:36.556Z xo:xo-mixins:hooks DEBUG clean finished Warning: connect.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process. 2019-12-12T20:14:36.610Z xo:main INFO Setting up / → /opt/xo/packages/xo-web/distI can successfully connect to XO via the web interface from my web browser so it appears to be working. I just want to know if the above error messages/codes are normal.
-
Well replying to myself again. As far as I can tell, the above error message is normal. I've tested it on a few different systems and I get the same error codes on all of them. I'm following the build from sources tutorial exactly as well. No script. Everything by hand a step at a time.
XO seems to work fine after starting it with the above error message.
However, there does seem to be a problem with this section:
yarn global add forever yarn global add forever-service # Be sure to edit the path below to where your install is located! cd /home/username/xen-orchestra/packages/xo-server/bin/ # Change the username below to the user owning XO forever-service install orchestra -r username -s xo-serverSo installing the
foreverand theforever-servicegoes ok. There is something about a module incompatibility however installing both theforeverandforever-service. Its the same error message for both so I'm only putting it in there below once:root@debian:/var/log# yarn global add forever yarn global v1.21.1 [1/4] Resolving packages... [2/4] Fetching packages... info fsevents@1.2.9: The platform "linux" is incompatible with this module. info "fsevents@1.2.9" is an optional dependency and failed compatibility check. Excluding it from installation. [3/4] Linking dependencies... [4/4] Building fresh packages... success Installed "forever@1.0.0" with binaries: - foreverRunning the last command,
forever-service install orchestra -r root -s xo-server, adds it as a service in/etc/init.d. You can then start it viaservice orchestra start. No problem there. The problem is stopping it. When you issueservice orchestra stopit doesn't stop the service. Syslog has this in it when stopping it:Dec 13 10:24:45 debian systemd[1]: Stopping LSB: forever-service startup script for orchestra... Dec 13 10:24:45 debian orchestra[1987]: /etc/init.d/orchestra: line 101: export: `failed:': not a valid identifier Dec 13 10:24:45 debian orchestra[1987]: /etc/init.d/orchestra: line 102: /root/.forever: Is a directory Dec 13 10:24:45 debian orchestra[1987]: Shutting down orchestra: mesg: ttyname failed: Inappropriate ioctl for dev Dec 13 10:24:45 debian orchestra[1987]: -bash: line 0: export: `failed:': not a valid identifier Dec 13 10:24:45 debian orchestra[1987]: -bash: line 1: /root/.forever: Is a directory Dec 13 10:24:45 debian orchestra[1987]: Not running Dec 13 10:24:45 debian systemd[1]: Stopped LSB: forever-service startup script for orchestra.Running
ps aux | grep xoshows all the instances (I started several of them) running after issuing stop commands.root@debian:/opt/xen-orchestra/packages/xo-server/bin# ps aux | grep orchestra root 1243 1.2 14.0 1276300 139988 ? Sl 10:09 0:15 /usr/bin/node /opt/xen-orchestra/packages/xo-ser ver/bin/xo-server root 1258 0.0 2.9 873656 29172 ? Sl 10:09 0:00 /usr/bin/node /opt/xen-orchestra/node_modules/je st-worker/build/workers/processChild.js root 1529 0.1 9.6 1266420 96356 ? Sl 10:17 0:01 /usr/bin/node /opt/xen-orchestra/packages/xo-ser ver/bin/xo-server root 1544 0.0 2.9 873656 29336 ? Sl 10:17 0:00 /usr/bin/node /opt/xen-orchestra/node_modules/je st-worker/build/workers/processChild.js root 1921 0.4 9.5 1262924 94976 ? Sl 10:24 0:01 /usr/bin/node /opt/xen-orchestra/packages/xo-ser ver/bin/xo-server root 1936 0.0 2.9 873656 29188 ? Sl 10:24 0:00 /usr/bin/node /opt/xen-orchestra/node_modules/je st-worker/build/workers/processChild.js root 2084 0.0 0.0 12780 952 pts/0 S+ 10:29 0:00 grep orchestraThe problem appears to be the
forever-servicenot being able to stop it properly. Runningservice orchestra statusshows:Dec 13 10:24:45 debian systemd[1]: Stopping LSB: forever-service startup script for orchestra... Dec 13 10:24:45 debian orchestra[1987]: /etc/init.d/orchestra: line 101: export: `failed:': not a valid identifier Dec 13 10:24:45 debian orchestra[1987]: /etc/init.d/orchestra: line 102: /root/.forever: Is a directory Dec 13 10:24:45 debian orchestra[1987]: Shutting down orchestra: mesg: ttyname failed: Inappropriate ioctl for device Dec 13 10:24:45 debian orchestra[1987]: -bash: line 0: export: `failed:': not a valid identifier Dec 13 10:24:45 debian orchestra[1987]: -bash: line 1: /root/.forever: Is a directory Dec 13 10:24:45 debian orchestra[1987]: Not running Dec 13 10:24:45 debian systemd[1]: Stopped LSB: forever-service startup script for orchestra.Any idea on why
forever-servicecan't shut it down? This is a Debian 9 system.I don't have to use the
forever-serviceto start/stop the XO server. But since I'm following your instructions, I thought you'd like to know that it doesn't work 100% as described. -
I don't know, likely the
foreverpart of the doc is outdated. Ping @julien-f -
@olivierlambert I'm not very familiar with Forever, I can't help you on this.
I think we should remove it from our documentation unless someone from the community is willing to maintain it. Maybe a pinned thread on this forum would make more sense.
-
Okay, we should probably reduce the documentation and send to some projects made to run Node program in background (eg a link to
foreverproject etc.) -
Why not using a systemd unit instead of forever ?
-
@ruskofd said in Build from source question:
Why not using a systemd unit instead of forever ?
This is exactly what I did. Created a service file in
etc/systemd/systemthat points back to thexo-serverbin file.