# Copyright 2014 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     "System startup script"
author          "chromium-os-dev@chromium.org"

start on startup
task

# Remember: This runs super early in the boot.  Logging is not available (so you
# can't use `logger`).  Failures here basically should not happen.  If they do,
# the system will fail to boot.  Oops!

# Disable OOM killer as we must never fail.
oom score never

script
  # The kernel and /sbin/init mount /proc, /sys and /dev before
  # we get here.
  mount -n -t tmpfs -o nodev,noexec,nosuid tmp /tmp

  mount -n -t tmpfs -o mode=0755,nodev,noexec,nosuid run /run
  mkdir -m 1777 /run/lock
  if [ -f /sys/fs/selinux/enforce ]; then
    restorecon -R /run
  fi
end script
