coova / coova-chilli

CoovaChilli is an open-source software access controller for captive portal hotspots.
Other
512 stars 258 forks source link

Systemd unit for chilli.service #541

Open mmaridev opened 2 years ago

mmaridev commented 2 years ago

Hi,

this is a first implementation of the systemd unit for chilli.service, although there are a few issues.

I wanted to build something more systemd-oriented than just a wrapper around the sysVinit script. Here some of the problems:

  1. Usage of /var/run/chilli.$HS_LANIF.pid is impossible mainly due to this systemd issue so I had to move to just /run/chilli.pid (also, systemd reports use of /var/run is deprecated an on my setup is in fact a symlink to /run). In my understanding, the current init script don't provide any support for multiple interfaces but, if needed, we could use the chilli@interface syntax of systemd to trick the situation.
  2. chilli runs as chilli user but needs to be invoked by root, so that it writes the .cfg.bin file. The most meaningful solution would be either to write the .cfg.bin file with ExecStartPre or to move the file to a location (e.g. /var/spool/chilli) writable by the chilli user. Is one of this possible?

refs #540

mmaridev commented 2 years ago
  1. The current handling of running radconfig injected via crontab doesn't make me really happy, I don't think editing cron via a service file can be considered a good practice. Maybe in systemd this could be replicated with a timer?
  2. Also running modprobe from the init file doesn't make that much sense to me. I think you should install via deb/rpm package something like /etc/modules-load.d/chilli.conf that loads tun at boot.
mmaridev commented 2 years ago

/cc @paolodongilli