Good day people.
I have tried for a good period of time now to work out the writing of a
good rc script to peertube (the P2P video sharing system). I have been
advised by a fellow member of this community to ask for better advice
here.
Technically, Peertube is actually a node process launch in a particular
way. It comes with several parameters and has to be launched in a
specific directory. This just makes it all the more fun. Or not.
Here is the current script as I wrote it :
----------------
#!/bin/ksh
daemon_user="_peertube"
HOME_DIR="/var/www/peertube"
CONF_DIR="${HOME_DIR}/config/"
daemon="HOME=${HOME_DIR} NODE_CONFIG_DIR=${CONF_DIR} \
NODE_ENV=production USER=${daemon_user} \
/usr/local/bin/node ${HOME_DIR}/peertube-latest/dist/server"
. /etc/rc.d/rc.subr
daemon_timeout=60
rc_reload=NO
pexp="node"
rc_cmd $1
------------------
So first, rcctl cannot find its process back (when making rcctl check
peertube, it just times out - the same when the process is started).
But I know it launches the thing.
Here is the peertube line in the list of processes :
_peertub 71223 0.0 12.5 125632 129388 p2 S+ 11:45PM 11:48.91
node: peertube (node)
----------------
To had a layer of sophistication, it has to be launched in a
subdirectory of its own installation.
It is installed in /var/www/peertube (which is $HOME_DIR in the script
above), with configuration, video storage and logs around, but the
software itself is in /var/www/peertube/versions/peertube-v-X.Y.Z and I
create a synbolic link at each peertube upgrade to the new version. And
so it has to be launched from that place. In order to achieve that, the
_peertube user's home directory is set to /var/www/peertube/peertube-
latest/ (so the symbolic link target).
This is totally unorthodox I know, but I found no better way to do that.
I hope you have interesting comments.
Thanks for your attention.