]> git.openstreetmap.org Git - nominatim.git/commitdiff
Document how to set up systemd timers for --once updates
authorAmanda McCann <amanda@technomancy.org>
Thu, 13 Jan 2022 12:11:25 +0000 (13:11 +0100)
committerAmanda McCann <amanda@technomancy.org>
Tue, 1 Feb 2022 16:01:45 +0000 (17:01 +0100)
docs/admin/Update.md

index 49a4c4bfd1b56ab97fc5cc5126344a768eaaf047..add1df5c453583a67651680153f71ad506f25afc 100644 (file)
@@ -131,6 +131,63 @@ done
 
 A cron job then creates the file `/srv/nominatim/schedule-maintenance` once per night.
 
+##### One-time mode with systemd
+
+You can run the one-time mode with a systemd timer & service.
+
+Create a timer description like `/etc/systemd/system/nominatim-updates.timer`:
+
+```
+[Unit]
+Description=Timer to start updates of Nominatim
+
+[Timer]
+OnActiveSec=2
+OnUnitActiveSec=1min
+Unit=nominatim-updates.service
+
+[Install]
+WantedBy=multi-user.target
+```
+
+And then a similar service definition: `/etc/systemd/system/nominatim-updates.service`:
+
+```
+[Unit]
+Description=Single updates of Nominatim
+
+[Service]
+WorkingDirectory=/srv/nominatim
+ExecStart=nominatim replication --once
+StandardOutput=append:/var/log/nominatim-updates.log
+StandardError=append:/var/log/nominatim-updates.error.log
+User=nominatim
+Group=nominatim
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
+```
+
+Replace the `WorkingDirectory` with your project directory. Also adapt user and
+group names as required. `OnUnitActiveSec` defines how often the individual
+update command is run.
+
+Now activate the service and start the updates:
+
+```
+sudo systemctl daemon-reload
+sudo systemctl enable nominatim-updates.timer
+sudo systemctl start nominatim-updates.timer
+```
+
+You can stop future data updates, while allowing any current, in-progress
+update steps to finish, by running `sudo systemctl stop
+nominatim-updates.timer` and waiting until `nominatim-updates.service` isn't
+running (`sudo systemctl is-active nominatim-updates.service`). Current output
+from the update can be seen like above (`systemctl status
+nominatim-updates.service`).
+
 
 #### Catch-up mode