# Copyright 2020 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

description     "System-proxy daemon"
author          "chromium-os-dev@chromium.org"

# The service is started by Chrome on demand.
stop on stopping ui
respawn
respawn limit 3 5

# Do not respawn if the service is terminated on purpose.
normal exit 0

# Sacrifice before OOM panic.
oom score 0
# TODO (acostinas, crbug.com/1045862) Add virtual memory size limit after
# run-time analysis.

# Minijail actually forks off the desired process.
expect fork

pre-start script
  # Check if ui is still running before starting the system proxy daemon.
  # This is to prevent new dbus-activated instances from getting started once
  # the system is beginning to shut down.
  if ! initctl status ui | grep -q running; then
    stop
    exit 0
  fi
end script

script
  # Start constructing minijail0 args...
  args=""

  # Use Minijail config file.
  args="${args} --config /usr/share/minijail/system-proxy.conf"

  # Execute system-proxy.
  args="${args} /usr/sbin/system_proxy"

  exec minijail0 ${args}
end script

# Wait for daemon to claim its D-Bus name before transitioning to started.
post-start exec minijail0 -u system-proxy -g system-proxy /usr/bin/gdbus \
    wait --system --timeout 15 org.chromium.SystemProxy
