У меня есть капля, размещенная в Digital Ocean под управлением Ubuntu 14.04.
У меня есть каталог журналов Gunicorn, который я сделал для хранения файлов журналов, и он работает только в том случае, если владельцем является пользователь, который запускает процесс gunicorn.
Да ...
chown user gunicorn
, но это длится только до перезагрузки, после чего право собственности возвращается к пользователю root, а группа - adm. Я запускаю процесс django и не знаю, что делать. Как я могу изменить своего нового владельца постоянным или добавить пользователя в группу adm тоже работает?
путь к каталогу ...
/var/log/gunicorn
ls -la каталог gunicorn ...
drwxr-x--- 2 root adm 4096 Jan 30 20:08 .
drwxrwxr-x 12 root syslog 4096 Jan 31 03:06 ..
-rw-r--r-- 1 django django 73747 Jan 31 02:34 access.log
-rw-r--r-- 1 django django 97698592 Jan 31 03:05 error.log
mount output ..
/dev/vda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
ls -la / var / log | grep gunicorn ...
drwxr-x--- 2 root adm 4096 Jan 30 20:08 gunicorn
/etc/init/gunicorn.conf ...
description "Gunicorn daemon for Django project"
start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]
# If the process quits unexpectadly trigger a respawn
respawn
setuid django
setgid django
chdir /home/django
exec venv/bin/gunicorn \
--name=langalang \
--pythonpath=langalang \
--bind=0.0.0.0:9000 \
--config /etc/gunicorn.d/gunicorn.py \
langalang.wsgi:application
/etc/gunicorn.d/cunicorn.py ...
"""gunicorn WSGI server configuration."""
from multiprocessing import cpu_count
from os import environ
def max_workers():
return cpu_count() * 2 + 1
max_requests = 1000
worker_class = 'gevent'
workers = max_workers()
errorlog = '/var/log/gunicorn/error.log'
accesslog = '/var/log/gunicorn/access.log'