Supervisord에는 여러 프로그램이 설정되어 있습니다. 출력을 표준 출력으로 보낸 다음 Supervisord를 사용하여 파일로 전달합니다. Supervisord에는 로그 회전 기능이 있지만 문제는 "root" 계정을 사용하여 새 파일을 생성하고 내 프로그램(supervisord를 통해 사용자 계정을 사용하여 실행됨)에 쓸 수 없다는 것입니다. 회전 후 새 파일을 생성하기 위한 사용자를 설정할 수 있습니까?
답변1
내 생각에는 프로그램에 문제가 있는 것 같습니다(또는 문제를 잘 설명하지 않았을 수도 있습니다).
Supervisord가 수행하는 작업은 프로그램이 쓸 파이프(stdout 및 stderr)를 생성한 다음 Supervisord가 해당 파이프를 읽고 로그 파일에 기록하는 것입니다. 즉, 프로그램은 자체 권한 문제로 인해 stdout에 쓸 수 없습니다. 발생할 수 있는 유일한 권한 문제는 감독자 자체가 새 로그 파일을 열 수 없다는 것입니다.
로그에 액세스하기 위해 특정 계정만 필요한 경우 set-gid 비트가 활성화된 디렉터리에 로그 파일을 넣고 systemd의 umask가 그룹 읽기(또는 쓰기) 권한을 허용하는지 확인하세요.