diff options
author | Ermal <eri@pfsense.org> | 2014-01-20 15:00:27 +0000 |
---|---|---|
committer | Ermal <eri@pfsense.org> | 2014-01-20 15:00:27 +0000 |
commit | 44b192982401b672069114b288e3769a3ef9daf2 (patch) | |
tree | edf2b5d04effe724efbeea182bd5021def78798e /etc/inc/service-utils.inc | |
parent | 770a7759f04fccff5fdc0d1e6b2f996d1e90ada2 (diff) | |
download | pfsense-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.inc | 26 |
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']) { |