summaryrefslogtreecommitdiffstats
path: root/etc/rc.stop_packages
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2011-05-18 22:40:24 +0000
committerErmal <eri@pfsense.org>2011-05-18 22:40:24 +0000
commit6c19757e1503939eaa018f7f72bc2209d8a747b1 (patch)
tree6570c448399ffd725a2201bbf26358e60d3d49b4 /etc/rc.stop_packages
parentc415a55bd3466bb9c67e9a6f81b88b285f9bd7b5 (diff)
downloadpfsense-6c19757e1503939eaa018f7f72bc2209d8a747b1.zip
pfsense-6c19757e1503939eaa018f7f72bc2209d8a747b1.tar.gz
Restore running custom scripts under /usr/local/etc/rc.d directory since it causes regressions and its a feature used by many users.
Diffstat (limited to 'etc/rc.stop_packages')
-rwxr-xr-xetc/rc.stop_packages33
1 files changed, 28 insertions, 5 deletions
diff --git a/etc/rc.stop_packages b/etc/rc.stop_packages
index dd031d4..181d2ea 100755
--- a/etc/rc.stop_packages
+++ b/etc/rc.stop_packages
@@ -36,13 +36,36 @@ require_once("shaper.inc");
require_once("captiveportal.inc");
require_once("pkg-utils.inc");
require_once("pfsense-utils.inc");
-
-if (!is_array($config['installedpackages']['package']))
- return;
+require_once("service-utils.inc");
log_error("Stopping all packages.");
-foreach($config['installedpackages']['package'] as $package)
- stop_service($package['name']);
+$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 " Stoping 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) {
+ echo " Stoping {$rcfile}...";
+ fwrite($shell, "{$rcfile} stop >>/tmp/bootup_messages 2>&1");
+ echo "done.\n";
+ }
+ pclose($shell);
+}
?>
OpenPOWER on IntegriCloud