![更改 Upstart 服务的日志目录/文件](https://linux22.com/image/1084533/%E6%9B%B4%E6%94%B9%20Upstart%20%E6%9C%8D%E5%8A%A1%E7%9A%84%E6%97%A5%E5%BF%97%E7%9B%AE%E5%BD%95%2F%E6%96%87%E4%BB%B6.png)
我有一个 upstart 服务,它占满了空间。我需要将日志从 /var/log/upstart 移到另一个目录 /pub/data/logs/order_server。我尝试使用
console log --logdir /pub/data/logs/order_server
但它给出了一个错误
start: Unknown job: order_server
检查文件
$ init-checkconf /etc/init/order_server.conf
ERROR: failed to ask Upstart to check conf file
这个故事类似于这个。我最终exec /path/to/my/daemon --arg1 --arg2 >/mnt/log/XYZ 2>&1
按照某人的建议进行了破解。
以下是服务配置文件
# Ubuntu upstart file at /etc/init/order_server.conf
description "order server dev version"
start on (local-filesystems and net-device-up)
stop on runlevel [06]
respawn
respawn limit 10 5
exec /pub/integration_prod/integration/order_server.sh >> /pub/data/logs/order_server/order_server.log 2>&1
现在日志文件位置已更改为新位置,但很难轮换日志。日志文件已压缩,但未创建新的日志文件。
新贵轮换看起来是这样的
/var/log/upstart/*.log /pub/data/logs/order_server/order_server.log {
daily
missingok
rotate 3
compress
notifempty
nocreate
}
我最初的目的是通过使用控制台日志按照建议选择这里。 我希望有人能帮帮忙。
答案1
食谱中说--logdir
这是一个命令行选项,这意味着它不是进入 upstart 作业文件的选项,而是 Upstart 本身的命令行选项。您可以在 init(8) 手册页中验证这一点,参见。http://manpages.ubuntu.com/manpages/precise/man8/init.8.html
--logdir directory
Write job output log files to a directory other than
/var/log/upstart.
换句话说,这是一个全局选项,而不是每个作业选项。