+ not_if { new_resource.uses_tiler }
+ end
+
+ # Ensure service is stopped because otherwise the socket cannot reload
+ service "mapserv-fcgi-#{new_resource.site}" do
+ provider Chef::Provider::Service::Systemd
+ action :nothing
+ subscribes :stop, "systemd_service[mapserv-fcgi-#{new_resource.site}]"
+ subscribes :stop, "systemd_socket[mapserv-fcgi-#{new_resource.site}]"
+ not_if { new_resource.uses_tiler }
+ end
+
+ systemd_unit "mapserv-fcgi-#{new_resource.site}.socket" do
+ action [:enable, :start]
+ subscribes :restart, "systemd_socket[mapserv-fcgi-#{new_resource.site}]"
+ not_if { new_resource.uses_tiler }
+ end
+
+ # mapserver leaks memory, so restart it regularly. It is activated automatically by socket
+ systemd_service "mapserv-fcgi-#{new_resource.site}-stop" do
+ type "simple"
+ user "root"
+ exec_start "/bin/systemctl --quiet stop mapserv-fcgi-#{new_resource.site}.service"
+ sandbox true
+ restrict_address_families "AF_UNIX"
+ not_if { new_resource.uses_tiler }
+ end
+
+ systemd_timer "mapserv-fcgi-#{new_resource.site}-stop" do
+ on_boot_sec "10m"
+ on_unit_inactive_sec "30m"
+ randomized_delay_sec "20m"
+ not_if { new_resource.uses_tiler }
+ end
+
+ service "mapserv-fcgi-#{new_resource.site}-stop.timer" do
+ action [:enable, :start]
+ not_if { new_resource.uses_tiler }