更改 Upstart 服务的日志目录/文件

mez*_*ezi 7 upstart 12.04

我有一个新贵的服务,它填满了空间。我需要将日志从 /var/log/upstart 移动到不同的目录 /pub/data/logs/order_server。我试着用

console log --logdir /pub/data/logs/order_server
Run Code Online (Sandbox Code Playgroud)

但它给出了一个错误

start: Unknown job: order_server
Run Code Online (Sandbox Code Playgroud)

检查文件

$ init-checkconf /etc/init/order_server.conf
ERROR: failed to ask Upstart to check conf file
Run Code Online (Sandbox Code Playgroud)

故事与这个相似。我最终exec /path/to/my/daemon --arg1 --arg2 >/mnt/log/XYZ 2>&1按照某人的建议进行了黑客攻击。

以下是服务的conf文件

# 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
Run Code Online (Sandbox Code Playgroud)

现在日志文件位置更改为新位置,但很难轮换日志。日志文件被压缩,但不会创建新的日志文件。

新贵轮换看起来像这样

/var/log/upstart/*.log /pub/data/logs/order_server/order_server.log {
        daily
        missingok
        rotate 3
        compress
        notifempty
        nocreate
}
Run Code Online (Sandbox Code Playgroud)

我最初的意图是使用此处建议的控制台日志选项来修复它。我希望有人能帮帮忙。

Jos*_*din 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.
Run Code Online (Sandbox Code Playgroud)

换句话说,这是一个全局选项,而不是每个作业的选项。