vanguards
vanguards copied to clipboard
rc script
I am trying to run Vanguards and restart/start/stop as a daemon on OpenBSD. Currently it is failing. File inside /etc/rc.d/vanguards mod 755 root:wheel
GNU nano 5.8 /etc/rc.d/vanguards
#!/bin/ksh
#
# $OnionJuggler: Vanguards,v ${vanguards_version} $(date +%Y/%m/%d' '%H:%M:%S) rpe Exp $
tor_data_dir="/var/tor"
tor_conf_dir="/etc/tor"
daemon="${tor_data_dir}/vanguards/src/vanguards.py"
daemon_flags="--config ${tor_conf_dir}/vanguards.conf"
. /etc/rc.d/rc.subr
rc_reload=NO
rcexec="su -fl -c ${daemon_class} -s /usr/local/bin/python3 ${daemon_user} -c"
rc_start() {
${rcexec} "${daemon_logger:+set -o pipefail; }${daemon} ${daemon_flags}${daemon_logger:+ 2>&1 |
logger -ip ${daemon_logger} -t ${_name}}"
}
rc_cmd $1
the error: probably because it is a python script, not shellscript
bsdm64$ doas rcctl restart -d vanguards
rcctl: service -d does not exist
bsdm64$ doas rcctl -d restart vanguards
doing _rc_parse_conf
doing _rc_quirks
vanguards_flags empty, using default >--config /etc/tor/vanguards.conf<
doing _rc_parse_conf /var/run/rc.d/vanguards
doing _rc_quirks
doing _rc_parse_conf
doing _rc_quirks
vanguards_flags empty, using default >--config /etc/tor/vanguards.conf<
doing _rc_parse_conf /var/run/rc.d/vanguards
doing _rc_quirks
doing rc_check
doing _rc_parse_conf
doing _rc_quirks
vanguards_flags empty, using default >--config /etc/tor/vanguards.conf<
doing rc_check
vanguards
doing rc_start
doing _rc_wait start
doing rc_check
File "<string>", line 1
/var/tor/vanguards/src/vanguards.py --config /etc/tor/vanguards.conf
^
SyntaxError: invalid syntax
doing _rc_rm_runfile
(failed)
I have to reassign rcexec because it expects /bin/sh, which will faill of course. Alternatively, I could include a start script inside vanguards repository for calling the python interpreter.
Now if I do /etc/rc.d/vanguards
#!/bin/ksh
#
# $OnionJuggler: Vanguards,v ${vanguards_version} $(date +%Y/%m/%d' '%H:%M:%S) rpe Exp $
daemon="/usr/local/bin/vanguards"
. /etc/rc.d/rc.subr
rc_reload=NO
rc_cmd $1
and in /usr/local/bin/vanguards
#!/usr/bin/env sh
python3 /var/tor/vanguards/src/vanguards.py --config /etc/tor/vanguards.conf --logfile /var/log/vanguards
I see on /var/log/vanguards:
NOTICE[Tue Dec 21 2021]: Vanguards 0.4.0-dev1 connected to Tor 0.4.6.7 using stem 1.8.0
NOTICE[Tue Dec 21 2021]: Vanguards successfilly applied config options from /etc/tor/vanguards.conf
NOTICE[Tue Dec 21 2021]: Connected to Tor via 127.0.0.1 control port
NOTICE[Tue Dec 21 2021]: Connected to Tor via 127.0.0.1 control port
NOTICE[Tue Dec 21 2021]: Vanguards 0.4.0-dev1 connected to Tor 0.4.6.7 using stem 1.8.0
NOTICE[Tue Dec 21 2021]: Vanguards 0.4.0-dev1 connected to Tor 0.4.6.7 using stem 1.8.0
Fortunately it does not quit after rc fails, but it means it is connecting to vanguards at least but not working as an rc script
$ doas rcctl -d restart vanguards
doing _rc_parse_conf
doing _rc_quirks
vanguards_flags empty, using default ><
doing _rc_parse_conf /var/run/rc.d/vanguards
doing _rc_quirks
doing _rc_parse_conf
doing _rc_quirks
vanguards_flags empty, using default ><
doing _rc_parse_conf /var/run/rc.d/vanguards
doing _rc_quirks
doing rc_check
doing _rc_parse_conf
doing _rc_quirks
vanguards_flags empty, using default ><
doing rc_check
vanguards
doing rc_start
doing _rc_wait start
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
doing rc_check
Alarm clock
/etc/rc.d/vanguards: kill: 95135: No such process
doing _rc_write_runfile
(timeout)
$ doas rcctl -d check vanguards
doing _rc_parse_conf
doing _rc_quirks
vanguards_flags empty, using default ><
doing _rc_parse_conf /var/run/rc.d/vanguards
doing _rc_quirks
vanguards
doing rc_check
(failed)