summaryrefslogtreecommitdiffstats
path: root/etc/inc/service-utils.inc
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2014-01-20 15:00:27 +0000
committerErmal <eri@pfsense.org>2014-01-20 15:00:27 +0000
commit44b192982401b672069114b288e3769a3ef9daf2 (patch)
treeedf2b5d04effe724efbeea182bd5021def78798e /etc/inc/service-utils.inc
parent770a7759f04fccff5fdc0d1e6b2f996d1e90ada2 (diff)
downloadpfsense-44b192982401b672069114b288e3769a3ef9daf2.zip
pfsense-44b192982401b672069114b288e3769a3ef9daf2.tar.gz
* Do not call stop service in the start command.
* Add some more checks into the functions to avoid errors * Also silence some output that can cause issues
Diffstat (limited to 'etc/inc/service-utils.inc')
-rw-r--r--etc/inc/service-utils.inc26
1 files changed, 5 insertions, 21 deletions
diff --git a/etc/inc/service-utils.inc b/etc/inc/service-utils.inc
index 5956bbe..85b2bc5 100644
--- a/etc/inc/service-utils.inc
+++ b/etc/inc/service-utils.inc
@@ -79,7 +79,8 @@ function write_rcfile($params) {
/* begin rcfile logic */
$towrite .= "case \$1 in\n\tstart)\n\t\trc_start\n\t\t;;\n\tstop)\n\t\trc_stop\n\t\t;;\n\trestart)\n\t\trc_stop\n\t\trc_start\n\t\t;;\nesac\n\n";
- file_put_contents($rcfile_fullname, $towrite);
+ @file_put_contents($rcfile_fullname, $towrite);
+ unset($towrite);
@chmod("{$rcfile_fullname}", 0755);
return;
@@ -91,16 +92,7 @@ function start_service($name) {
if (empty($name))
return;
- /* make sure service is stopped before starting */
- stop_service($name);
- sleep(2);
-
- $rcfile_fullname = RCFILEPREFIX . $name . '.sh';
- if(file_exists($rcfile_fullname)) {
- mwexec_bg("/bin/sh {$rcfile_fullname} start");
- return;
- }
- if($config['installedpackages']['service']) {
+ if (is_array($config['installedpackages']) && is_array($config['installedpackages']['service'])) {
foreach($config['installedpackages']['service'] as $service) {
if(strtolower($service['name']) == strtolower($name)) {
if($service['rcfile']) {
@@ -126,7 +118,7 @@ function stop_service($name) {
if (empty($name))
return;
- if ($config['installedpackages']['service']) {
+ if (is_aray($config['installedpackages']) && is_array($config['installedpackages']['service'])) {
foreach($config['installedpackages']['service'] as $service) {
if(strtolower($service['name']) == strtolower($name)) {
if($service['rcfile']) {
@@ -142,18 +134,10 @@ function stop_service($name) {
if (!empty($service['stopcmd']))
eval($service['stopcmd']);
- if(!($service['rcfile'] or $service['stopcmd'])) {
- if(is_process_running("{$service['executable']}"))
- mwexec("/usr/bin/killall {$service['executable']}");
- return;
- }
break;
}
}
}
- /* finally if we get here lets simply kill the service name */
- if(is_process_running("{$name}"))
- mwexec("/usr/bin/killall {$name}");
}
function restart_service($name) {
@@ -165,7 +149,7 @@ function restart_service($name) {
stop_service($name);
start_service($name);
- if($config['installedpackages']['service']) {
+ if (is_aray($config['installedpackages']) && is_array($config['installedpackages']['service'])) {
foreach($config['installedpackages']['service'] as $service) {
if(strtolower($service['name']) == strtolower($name)) {
if($service['restartcmd']) {
OpenPOWER on IntegriCloud