Gunicorn: 재부팅 시 로그 파일 디렉터리 소유자가 재설정됩니까?

Gunicorn: 재부팅 시 로그 파일 디렉터리 소유자가 재설정됩니까?

Ubuntu 14.04를 실행하는 Digital Ocean에서 호스팅되는 Droplet이 있습니다.

로그 파일을 저장하는 gunicorn 로그 디렉터리가 있으며 소유자가 gunicorn 프로세스를 실행하는 사용자인 경우에만 작동합니다.

나는하고 싶다 ...

chown user gunicorn

그러나 이는 재부팅할 때까지만 지속되며 소유권은 다시 루트로 돌아가고 그룹은 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

설치 출력..

/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 | ls -la /var/log | grep Gurnikon...

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'

답변1

/etc/init.d/gunicorn에는 gunicorn이 시작될 때마다 디렉터리 권한을 생성하고 부여하는 스크립트가 있는 것으로 나타났습니다. 방금 해당 파일의 권한을 변경했는데 모든 것이 잘 작동합니다. 그거 정말 찾기 힘들어요

관련 정보