Server start based on config
This commit is contained in:
parent
6c6976678f
commit
569201e972
@ -36,27 +36,34 @@ class StartServer extends Command
|
|||||||
{
|
{
|
||||||
$o = Setup::findOrFail(config('app.id'));
|
$o = Setup::findOrFail(config('app.id'));
|
||||||
|
|
||||||
// @todo This should be a config item.
|
$start = collect();
|
||||||
$start = [
|
|
||||||
'emsi' => [
|
|
||||||
'address'=>Setup::EMSI_BIND,
|
|
||||||
'port'=>Setup::EMSI_PORT,
|
|
||||||
'class'=>new EMSI($o),
|
|
||||||
|
|
||||||
],
|
if ($o->optionGet(Setup::O_BINKP))
|
||||||
'binkp' => [
|
$start->put('binkp',[
|
||||||
'address'=>Setup::BINKP_BIND,
|
'address'=>Setup::BINKP_BIND,
|
||||||
'port'=>Setup::BINKP_PORT,
|
'port'=>Setup::BINKP_PORT,
|
||||||
'class'=>new Binkp($o),
|
'class'=>new Binkp($o),
|
||||||
],
|
]);
|
||||||
];
|
|
||||||
|
if ($o->optionGet(Setup::O_EMSI))
|
||||||
|
$start->put('emsi',[
|
||||||
|
'address'=>Setup::EMSI_BIND,
|
||||||
|
'port'=>Setup::EMSI_PORT,
|
||||||
|
'class'=>new EMSI($o),
|
||||||
|
]);
|
||||||
|
|
||||||
$children = collect();
|
$children = collect();
|
||||||
|
|
||||||
Log::debug(sprintf('%s:+ Starting Servers...',__METHOD__));
|
Log::debug(sprintf('%s:+ Starting Servers...',__METHOD__));
|
||||||
|
|
||||||
|
if (! $start->count()) {
|
||||||
|
Log::alert(sprintf('%s: - No servers configured to start',__METHOD__));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
pcntl_signal(SIGCHLD,SIG_IGN);
|
pcntl_signal(SIGCHLD,SIG_IGN);
|
||||||
|
|
||||||
foreach ($start as $item => $config) {
|
foreach ($start->toArray() as $item => $config) {
|
||||||
Log::debug(sprintf('%s: - Starting: [%s]',__METHOD__,$item));
|
Log::debug(sprintf('%s: - Starting: [%s]',__METHOD__,$item));
|
||||||
|
|
||||||
$pid = pcntl_fork();
|
$pid = pcntl_fork();
|
||||||
@ -91,11 +98,14 @@ class StartServer extends Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Wait for children to exit
|
// Wait for children to exit
|
||||||
while ($children->count()) {
|
while ($x=$children->count()) {
|
||||||
// Wait for children to finish
|
// Wait for children to finish
|
||||||
$exited = pcntl_wait($status);
|
$exited = pcntl_wait($status);
|
||||||
|
|
||||||
Log::info(sprintf('%s: - Exited: [%s]',__METHOD__,$children->pull($exited)));
|
if ($exited < 0)
|
||||||
|
abort(500,'Something strange for status: '.serialize($status));
|
||||||
|
|
||||||
|
Log::info(sprintf('%s: - Exited: #%d [%s]',__METHOD__,$x,$children->pull($exited)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Done
|
// Done
|
||||||
|
@ -100,7 +100,7 @@ use App\Models\Setup;
|
|||||||
<!-- Binkp Settings -->
|
<!-- Binkp Settings -->
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<h3>BINKP Settings</h3>
|
<h3>BINKP Settings</h3>
|
||||||
<p>Bink has been configured to listen on <strong>{{ Setup::BINKP_BIND }}</strong>:<strong>{{ Setup::BINKP_PORT }}</strong></p>
|
<p>BINKD has been configured to listen on <strong>{{ Setup::BINKP_BIND }}</strong>:<strong>{{ Setup::BINKP_PORT }}</strong></p>
|
||||||
|
|
||||||
<div class="form-check form-switch">
|
<div class="form-check form-switch">
|
||||||
<input class="form-check-input" type="checkbox" id="startbinkd" name="options[binkd]" value="{{ Setup::O_BINKP }}" @if(old('options.binkd',$o->optionGet(Setup::O_BINKP))) checked @endif>
|
<input class="form-check-input" type="checkbox" id="startbinkd" name="options[binkd]" value="{{ Setup::O_BINKP }}" @if(old('options.binkd',$o->optionGet(Setup::O_BINKP))) checked @endif>
|
||||||
@ -149,6 +149,7 @@ use App\Models\Setup;
|
|||||||
|
|
||||||
<p class="pt-3"><sup>*</sup> Recommended Defaults</p>
|
<p class="pt-3"><sup>*</sup> Recommended Defaults</p>
|
||||||
|
|
||||||
|
<!-- @todo What's this for again? -->
|
||||||
<table class="table monotable">
|
<table class="table monotable">
|
||||||
{{--
|
{{--
|
||||||
$this->binkp_options = ['m','d','r','b'];
|
$this->binkp_options = ['m','d','r','b'];
|
||||||
@ -159,7 +160,7 @@ use App\Models\Setup;
|
|||||||
<!-- EMSI Settings -->
|
<!-- EMSI Settings -->
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<h3>EMSI Settings</h3>
|
<h3>EMSI Settings</h3>
|
||||||
<p>Bink has been configured to listen on <strong>{{ Setup::EMSI_BIND }}</strong>:<strong>{{ Setup::EMSI_PORT }}</strong></p>
|
<p>EMSI has been configured to listen on <strong>{{ Setup::EMSI_BIND }}</strong>:<strong>{{ Setup::EMSI_PORT }}</strong></p>
|
||||||
|
|
||||||
<div class="form-check form-switch">
|
<div class="form-check form-switch">
|
||||||
<input class="form-check-input" type="checkbox" id="startemsi" name="options[emsi]" value="{{ Setup::O_EMSI }}" @if(old('options.emsi',$o->optionGet(Setup::O_EMSI))) checked @endif>
|
<input class="form-check-input" type="checkbox" id="startemsi" name="options[emsi]" value="{{ Setup::O_EMSI }}" @if(old('options.emsi',$o->optionGet(Setup::O_EMSI))) checked @endif>
|
||||||
|
Loading…
Reference in New Issue
Block a user