2013-07-18 15:28:56 -07:00
|
|
|
<?php
|
|
|
|
|
|
|
|
final class PhabricatorDaemonManagementStatusWorkflow
|
|
|
|
extends PhabricatorDaemonManagementWorkflow {
|
|
|
|
|
|
|
|
public function didConstruct() {
|
|
|
|
$this
|
|
|
|
->setName('status')
|
|
|
|
->setSynopsis(pht('Show status of running daemons.'))
|
|
|
|
->setArguments(array());
|
|
|
|
}
|
|
|
|
|
|
|
|
public function execute(PhutilArgumentParser $args) {
|
|
|
|
$console = PhutilConsole::getConsole();
|
|
|
|
$daemons = $this->loadRunningDaemons();
|
|
|
|
|
|
|
|
if (!$daemons) {
|
|
|
|
$console->writeErr(
|
|
|
|
"%s\n",
|
2014-06-09 11:36:49 -07:00
|
|
|
pht('There are no running Phabricator daemons.'));
|
2013-07-18 15:28:56 -07:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
$status = 0;
|
2014-06-16 17:43:45 -07:00
|
|
|
printf(
|
|
|
|
"%-5s\t%-24s\t%-50s%s\n",
|
|
|
|
'PID',
|
|
|
|
'Started',
|
|
|
|
'Daemon',
|
|
|
|
'Arguments');
|
2013-07-18 15:28:56 -07:00
|
|
|
foreach ($daemons as $daemon) {
|
|
|
|
$name = $daemon->getName();
|
|
|
|
if (!$daemon->isRunning()) {
|
|
|
|
$daemon->updateStatus(PhabricatorDaemonLog::STATUS_DEAD);
|
|
|
|
$status = 2;
|
|
|
|
$name = '<DEAD> '.$name;
|
|
|
|
}
|
2014-06-16 17:43:45 -07:00
|
|
|
printf(
|
|
|
|
"%5s\t%-24s\t%-50s%s\n",
|
|
|
|
$daemon->getPID(),
|
|
|
|
$daemon->getEpochStarted()
|
2013-07-18 15:28:56 -07:00
|
|
|
? date('M j Y, g:i:s A', $daemon->getEpochStarted())
|
|
|
|
: null,
|
2014-06-16 17:43:45 -07:00
|
|
|
$name,
|
|
|
|
csprintf('%LR', $daemon->getArgv()));
|
2013-07-18 15:28:56 -07:00
|
|
|
}
|
|
|
|
|
2014-06-16 17:43:45 -07:00
|
|
|
return $status;
|
2013-07-18 15:28:56 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|