-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstart.sh
executable file
·73 lines (59 loc) · 2.12 KB
/
start.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/bin/bash -ex
tailpid=0
replicationpid=0
stopServices() {
service apache2 stop
service postgresql stop
kill $replicationpid
kill $tailpid
}
trap stopServices SIGTERM TERM INT
/app/config.sh
if id nominatim >/dev/null 2>&1; then
echo "user nominatim already exists"
else
useradd -m -p ${NOMINATIM_PASSWORD} nominatim
fi
IMPORT_FINISHED=/var/lib/postgresql/14/main/import-finished
if [ ! -f ${IMPORT_FINISHED} ]; then
/app/init.sh
touch ${IMPORT_FINISHED}
else
chown -R nominatim:nominatim ${PROJECT_DIR}
fi
service postgresql start
cd ${PROJECT_DIR} && sudo -E -u nominatim nominatim refresh --website --functions
service apache2 start
# start continous replication process
if [ "$REPLICATION_URL" != "" ] && [ "$FREEZE" != "true" ]; then
# run init in case replication settings changed
sudo -E -u nominatim nominatim replication --project-dir ${PROJECT_DIR} --init
if [ "$UPDATE_MODE" == "continuous" ]; then
echo "starting continuous replication"
sudo -E -u nominatim nominatim replication --project-dir ${PROJECT_DIR} &> /var/log/replication.log &
replicationpid=${!}
elif [ "$UPDATE_MODE" == "once" ]; then
echo "starting replication once"
sudo -E -u nominatim nominatim replication --project-dir ${PROJECT_DIR} --once &> /var/log/replication.log &
replicationpid=${!}
elif [ "$UPDATE_MODE" == "catch-up" ]; then
echo "starting replication once in catch-up mode"
sudo -E -u nominatim nominatim replication --project-dir ${PROJECT_DIR} --catch-up &> /var/log/replication.log &
replicationpid=${!}
else
echo "skipping replication"
fi
fi
# fork a process and wait for it
tail -Fv /var/log/postgresql/postgresql-14-main.log /var/log/apache2/access.log /var/log/apache2/error.log /var/log/replication.log &
tailpid=${!}
if [ "$REVERSE_ONLY" = "true" ]; then
echo "Warm database caches for reverse queries"
sudo -E -u nominatim nominatim admin --warm --reverse > /dev/null
else
echo "Warm database caches for search and reverse queries"
sudo -E -u nominatim nominatim admin --warm > /dev/null
fi
echo "Warming finished"
echo "--> Nominatim is ready to accept requests"
wait