[Slackbuilds-users] Starting a daemon in rc
Ruben Schuller
sb at rbn.im
Fri Mar 10 15:06:59 UTC 2023
Hi!
2023-03-10 phalange at komputermatrix.com:
> I have slackbuild for tailscale that includes a daemon. The daemon
> should ideally be started by the init system. But it requires an
> internet connection, and in the case of using wifi, starting this
> daemon from rc.local halts the init -- *I think* because it's
> searching for a connection before wifi is connected.
>
> Any suggestions for starting a daemon like this?
You could try the "daemon" package for this, it's shipped with Slackware
and works pretty well! Here's how I do it for my dendrite SlackBuild
(not on SBo yet):
----8<-------------------------------
#!/bin/sh
if [ -f /etc/default/dendrite ]; then
. /etc/default/dendrite
fi
dendrite_start() {
if [ -x /usr/bin/dendrite-monolith-server ]; then
daemon -n dendrite -u dendrite -- dendrite-monolith-server-tls-key $TLSKEY -tls-cert $TLSCERT -config /etc/dendrite/dendrite.yaml
fi
}
dendrite_stop() {
daemon -n dendrite -u dendrite --stop
}
dendrite_restart() {
dendrite_stop
sleep 1
dendrite_start
}
case "$1" in
'start')
dendrite_start
;;
'stop')
dendrite_stop
;;
'restart')
dendrite_restart
;;
*)
echo "usage $0 start|stop|restart"
esac
----8<-------------------------------
I'm not sure how to handle the waiting for the network. I suppose you
could add something which checks if network manager is connected, but
be aware that there are people (myself included) who use the classic
Slackware network scripts for this and it wouldn't work. Maybe you
could add something which pings the tailscale servers, you are going
to connect to them anyway.
Cheers
Ruben
More information about the SlackBuilds-users
mailing list