Move the stop_packages code to a function, and call the function from the shell script, and call the function directly for a reboot. Fixes #2402 and ticket #1564
This commit is contained in:
parent
15855fbc5b
commit
60dd7649d0
|
@ -1254,4 +1254,48 @@ function pkg_reinstall_all() {
|
|||
}
|
||||
}
|
||||
|
||||
function stop_packages() {
|
||||
require_once("config.inc");
|
||||
require_once("functions.inc");
|
||||
require_once("filter.inc");
|
||||
require_once("shaper.inc");
|
||||
require_once("captiveportal.inc");
|
||||
require_once("pkg-utils.inc");
|
||||
require_once("pfsense-utils.inc");
|
||||
require_once("service-utils.inc");
|
||||
|
||||
global $config, $g, $rcfileprefix;
|
||||
|
||||
log_error("Stopping all packages.");
|
||||
|
||||
$rcfiles = glob("{$rcfileprefix}*.sh");
|
||||
if (!$rcfiles)
|
||||
$rcfiles = array();
|
||||
else {
|
||||
$rcfiles = array_flip($rcfiles);
|
||||
if (!$rcfiles)
|
||||
$rcfiles = array();
|
||||
}
|
||||
|
||||
if (is_array($config['installedpackages']['package'])) {
|
||||
foreach($config['installedpackages']['package'] as $package) {
|
||||
echo " Stopping package {$package['name']}...";
|
||||
stop_service($package['name']);
|
||||
unset($rcfiles["{$rcfileprefix}{$package['name']}.sh"]);
|
||||
echo "done.\n";
|
||||
}
|
||||
}
|
||||
|
||||
$shell = @popen("/bin/sh", "w");
|
||||
if ($shell) {
|
||||
foreach ($rcfiles as $rcfile => $number) {
|
||||
echo " Stopping {$rcfile}...";
|
||||
fwrite($shell, "{$rcfile} stop >>/tmp/bootup_messages 2>&1");
|
||||
echo "done.\n";
|
||||
}
|
||||
|
||||
pclose($shell);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -1345,7 +1345,8 @@ function system_reboot_cleanup() {
|
|||
captiveportal_radius_stop_all();
|
||||
require_once("voucher.inc");
|
||||
voucher_save_db_to_config();
|
||||
mwexec("/etc/rc.stop_packages");
|
||||
require_once("pkg-utils.inc");
|
||||
stop_packages();
|
||||
}
|
||||
|
||||
function system_do_shell_commands($early = 0) {
|
||||
|
|
|
@ -1,74 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
/usr/local/bin/php -q <<ENDPHP
|
||||
#!/usr/local/bin/php -f
|
||||
<?php
|
||||
/* $Id$ */
|
||||
/*
|
||||
rc.stop_packages
|
||||
part of pfSense (http://www.pfSense.com)
|
||||
Copyright (C) 2004 Scott Ullrich
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
require_once("config.inc");
|
||||
require_once("functions.inc");
|
||||
require_once("filter.inc");
|
||||
require_once("shaper.inc");
|
||||
require_once("captiveportal.inc");
|
||||
require_once("pkg-utils.inc");
|
||||
require_once("pfsense-utils.inc");
|
||||
require_once("service-utils.inc");
|
||||
|
||||
log_error("Stopping all packages.");
|
||||
|
||||
$rcfiles = glob("{$rcfileprefix}*.sh");
|
||||
if (!$rcfiles)
|
||||
$rcfiles = array();
|
||||
else {
|
||||
$rcfiles = array_flip($rcfiles);
|
||||
if (!$rcfiles)
|
||||
$rcfiles = array();
|
||||
}
|
||||
|
||||
if (is_array($config['installedpackages']['package'])) {
|
||||
foreach($config['installedpackages']['package'] as $package) {
|
||||
echo " Stopping package {$package['name']}...";
|
||||
stop_service($package['name']);
|
||||
unset($rcfiles["{$rcfileprefix}{$package['name']}.sh"]);
|
||||
echo "done.\n";
|
||||
}
|
||||
}
|
||||
|
||||
$shell = @popen("/bin/sh", "w");
|
||||
if ($shell) {
|
||||
foreach ($rcfiles as $rcfile => $number) {
|
||||
echo " Stopping {$rcfile}...";
|
||||
fwrite($shell, "{$rcfile} stop >>/tmp/bootup_messages 2>&1");
|
||||
echo "done.\n";
|
||||
}
|
||||
|
||||
pclose($shell);
|
||||
}
|
||||
?>
|
||||
ENDPHP
|
||||
stop_packages();
|
||||
?>
|
Reference in New Issue