#!/usr/local/bin/php-cgi -f . * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* parse the configuration and include all functions used below */ require_once("config.inc"); require_once("functions.inc"); require_once("filter.inc"); require_once("captiveportal.inc"); $fp = fopen('php://stdin', 'r'); echo "\n" . sprintf(gettext("%s will reboot. This may take a few minutes, depending on your hardware."), $g['product_name']) . "\n"; echo gettext("Do you want to proceed?") . "\n\n"; echo " " . gettext("Y/y: Reboot normally") . "\n"; if (!is_module_loaded("zfs.ko")) { echo " " . gettext("R/r: Reroot (Stop processes, remount disks, re-run startup sequence)") . "\n"; } echo " " . gettext("S: Reboot into Single User Mode (requires console access!)") . "\n"; echo " " . gettext("F: Reboot and run a filesystem check") . "\n\n"; echo gettext("Enter an option:") . " "; switch (chop(fgets($fp))) { case "S": mwexec('/sbin/nextboot -o "-s" -k kernel'); echo "\n" . sprintf(gettext("%s is rebooting into single user mode now."), $g['product_name']) . "\n"; system_reboot_sync(); break; case "F": mwexec('/sbin/nextboot -e "pfsense.fsck.force=5"'); echo "\n" . sprintf(gettext("%s is rebooting for a filesystem check now."), $g['product_name']) . "\n"; system_reboot_sync(); break; case "R": case "r": if (!is_module_loaded("zfs.ko")) { echo "\n" . sprintf(gettext("%s is rerooting now."), $g['product_name']) . "\n"; system_reboot_sync(true); } break; case "Y": case "y": echo "\n" . sprintf(gettext("%s is rebooting now."), $g['product_name']) . "\n"; system_reboot_sync(); break; default: break; } fclose($fp); echo "\n"; ?>