Use systemd-tmpfiles to create /var/run/uwsgi

On ubuntu contents of /var/run do not persist between reboots. Devstack
uses /var/run/uwsgi as home for wsgi sockets. This means that after
rebooting the machine services, that rely on uwsgi would fail to start.
Currently it affects keystone.service and placement-api.service.
This patch changes delegates directory creation to systemd-tmpfiles,
which would run on startup.

Change-Id: I27d168cea93698739ef08ac76c828695a49176c7
Closes-Bug: #1692767
This commit is contained in:
Kirill Zaitsev 2017-05-26 19:02:52 +03:00
parent 9b2a2fa55d
commit d0db62a476
1 changed files with 7 additions and 1 deletions

View File

@ -229,7 +229,13 @@ function write_uwsgi_config {
# create a home for the sockets; note don't use /tmp -- apache has
# a private view of it on some platforms.
local socket_dir='/var/run/uwsgi'
sudo install -d -o $STACK_USER -m 755 $socket_dir
# /var/run will be empty on ubuntu after reboot, so we can use systemd-temptiles
# to automatically create $socket_dir.
sudo mkdir -p /etc/tmpfiles.d/
echo "d $socket_dir 0755 $STACK_USER root" | sudo tee /etc/tmpfiles.d/uwsgi.conf
sudo systemd-tmpfiles --create /etc/tmpfiles.d/uwsgi.conf
local socket="$socket_dir/${name}.socket"
# always cleanup given that we are using iniset here