我正在使用日志轮换来轮换我正在运行的守护程序(Web 服务)的日志。日志轮换如下:
/var/log/deamon/error.log {
daily
rotate 20
compress
delaycompress
missingok
notifempty
create 644 uwsgi uwsgi
postrotate
/etc/init.d/deamon stop
/etc/init.d/deamon start
endscript
}
Run Code Online (Sandbox Code Playgroud)
该/etc/init.d/deamon stop
工作正常,但它从未开始备份。有两个问题之一:要么我得到一个权限被拒绝的错误(可能不是因为我也会得到它停止)。或者启动部分失败。我需要以 root 身份启动服务,因为出于权限考虑,我需要设置 UID 和 GID。即使我设置了-rwxrwxrwx
它的权限也会给我这个错误:unable to set gid to 1001 (Operation not permitted)
我的问题是如何将 logrotate 设置为以不同的用户(即 root)运行或允许旋转设置 gid。
这是我的 /etc/init.d/deamon
#!/bin/bash
daemon=/venv/deamon_django18/bin/uwsgi
pid=/var/run/uwsgi/deamon.pid
args="--ini /etc/uwsgi/deamon.ini --pidfile $pid"
case "$1" in
start)
echo "Starting uwsgi"
start-stop-daemon -u uwsgi -g uwsgi -p $pid --start --exec $daemon -- $args
;;
stop)
echo "Stopping script …
Run Code Online (Sandbox Code Playgroud)