Automatically try to start the Daemon
This commit is contained in:
parent
920591a171
commit
89a7c55dfe
2 changed files with 45 additions and 6 deletions
|
@ -122,6 +122,7 @@ class LBRYPress
|
||||||
$this->define('LBRY_CLAIM_ID', '_lbry_claim_id'); // The Claim ID for the post as it was published on LBRY
|
$this->define('LBRY_CLAIM_ID', '_lbry_claim_id'); // The Claim ID for the post as it was published on LBRY
|
||||||
$this->define('LBRY_CANONICAL_URL', '_lbry_canonical_url'); // The canonical url for the published lbry post
|
$this->define('LBRY_CANONICAL_URL', '_lbry_canonical_url'); // The canonical url for the published lbry post
|
||||||
$this->define('LBRY_SPEECH_ASSET_URL', 'speech_asset_url'); // The meta key for an asset's speech url
|
$this->define('LBRY_SPEECH_ASSET_URL', 'speech_asset_url'); // The meta key for an asset's speech url
|
||||||
|
$this->define('LBRY_DAEMON_PID', 'lbry_daemon_pid');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -184,7 +185,8 @@ class LBRYPress
|
||||||
$option_defaults = array(
|
$option_defaults = array(
|
||||||
LBRY_SPEECH => null,
|
LBRY_SPEECH => null,
|
||||||
LBRY_LICENSE => $this->licenses[0],
|
LBRY_LICENSE => $this->licenses[0],
|
||||||
LBRY_LBC_PUBLISH => 1
|
LBRY_LBC_PUBLISH => 1,
|
||||||
|
LBRY_DAEMON_PID => false
|
||||||
);
|
);
|
||||||
|
|
||||||
add_option(LBRY_SETTINGS, $option_defaults, false);
|
add_option(LBRY_SETTINGS, $option_defaults, false);
|
||||||
|
|
|
@ -40,7 +40,7 @@ class LBRY_Daemon
|
||||||
|
|
||||||
if (!$this->daemon_running) {
|
if (!$this->daemon_running) {
|
||||||
$this->start_daemon();
|
$this->start_daemon();
|
||||||
$this->notice->set_notice('error', 'Cannot connect to the LBRY Daemon. Attempting to start server. <br /> If you are still having troubles, click <a href="' . admin_url('admin.php?page=lbrypress-help') . '">HERE</a> for help.');
|
$this->notice->set_notice('error', 'Cannot connect to the LBRY Daemon. Attempting to start daemon server. <br /> If you are still having troubles, click <a href="' . admin_url('admin.php?page=lbrypress-help') . '">HERE</a> for help.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,16 +64,53 @@ class LBRY_Daemon
|
||||||
*/
|
*/
|
||||||
private function start_daemon()
|
private function start_daemon()
|
||||||
{
|
{
|
||||||
$response = popen(ABSPATH . '/lbrynet start', "w");
|
// Check if a daemon start process is already running
|
||||||
error_log(print_r($response));
|
$options = get_option(LBRY_SETTINGS);
|
||||||
|
if ($options[LBRY_DAEMON_PID]) {
|
||||||
|
if ($this->is_process_running($options[LBRY_DAEMON_PID])) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$options[LBRY_DAEMON_PID] = false;
|
||||||
|
update_option(LBRY_SETTINGS, $options);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Using proc_open to set up the request
|
||||||
|
// Again, this is unix only
|
||||||
|
$cmd = ABSPATH . "lbrynet start";
|
||||||
|
$command = $cmd . ' > /dev/null 2> /dev/null & echo $!;';
|
||||||
|
$pid = exec($command);
|
||||||
|
|
||||||
|
if ($pid) {
|
||||||
|
$options = get_option(LBRY_SETTINGS);
|
||||||
|
$options[LBRY_DAEMON_PID] = $pid;
|
||||||
|
update_option(LBRY_SETTINGS, $options);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attempts to start the daemon
|
* Attempts to stop the daemon
|
||||||
*/
|
*/
|
||||||
private function stop_daemon()
|
private function stop_daemon()
|
||||||
{
|
{
|
||||||
exec(ABSPATH . '/lbrynet stop &');
|
exec(ABSPATH . 'lbrynet stop > /dev/null 2> /dev/null &');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks to see if a PID is currently running
|
||||||
|
* @param int $pid
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
private function is_process_running($pid)
|
||||||
|
{
|
||||||
|
// This is unix specific
|
||||||
|
$lines_out = array();
|
||||||
|
exec('ps '.(int)$pid, $lines_out);
|
||||||
|
if(count($lines_out) >= 2) {
|
||||||
|
// Process is running
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue