# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

description   "Syslog daemon"
author        "chromium-os-dev@chromium.org"

start on started journald
stop on stopping journald
expect fork
respawn

pre-start script
  setup() {
    touch "$1"
    chown syslog "$1"
  }
  setup /var/log/messages
  setup /var/log/net.log
  setup /var/log/secure
  setup /var/log/boot.log
  setup /var/log/tlsdate.log
  setup /var/log/authpolicy.log
  setup /var/log/arc.log
  setup /var/log/upstart.log
  setup /var/log/bluetooth.log
  mkdir -p /var/lib/timezone
  mkdir -p /run/rsyslogd
end script

# We don't use --mount-dev because of the way the /dev/log unix socket works.
# See https://crbug.com/764455#c6 for details.
#
# rsyslogd creates it's unix domain socket at /run/systemd/journal/syslog.
# Journald forwards messages to that address.
#
# We don't use a pid namespace because that breaks syslog's ability to log the
# remote pid.  Otherwise the logs would look like (where [0] is the pid):
# INFO sshd[0]: ...
exec /sbin/minijail0 -l --uts -i -v -e -t -P /mnt/empty -T static \
    -b / -b /dev,,1 -b /proc \
    -k 'tmpfs,/run,tmpfs,MS_NOSUID|MS_NODEV|MS_NOEXEC' \
    -b /run/systemd/journal,,1 \
    -b /run/rsyslogd,,1 \
    -k 'tmpfs,/var,tmpfs,MS_NOSUID|MS_NODEV|MS_NOEXEC' \
    -b /var/log,,1 -b /var/lib/timezone \
    /usr/sbin/rsyslogd -n -f /etc/rsyslog.chromeos -i /tmp/rsyslogd.pid

