Page MenuHomePhabricator

D11899.id.diff
No OneTemporary

D11899.id.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -7,7 +7,7 @@
*/
return array(
'names' => array(
- 'core.pkg.css' => '44623ac2',
+ 'core.pkg.css' => '4e2c8d53',
'core.pkg.js' => '23d653bb',
'darkconsole.pkg.js' => '8ab24e01',
'differential.pkg.css' => '14f0fa92',
@@ -38,14 +38,13 @@
'rsrc/css/application/base/main-menu-view.css' => 'f9f5cd1b',
'rsrc/css/application/base/notification-menu.css' => '6aa0a74b',
'rsrc/css/application/base/phabricator-application-launch-view.css' => '16ca323f',
- 'rsrc/css/application/base/standard-page-view.css' => 'df338a4b',
+ 'rsrc/css/application/base/standard-page-view.css' => '60d0df9a',
'rsrc/css/application/chatlog/chatlog.css' => '852140ff',
'rsrc/css/application/config/config-options.css' => '7fedf08b',
'rsrc/css/application/config/config-template.css' => '8e6c6fcd',
'rsrc/css/application/config/config-welcome.css' => 'b0d16200',
'rsrc/css/application/config/setup-issue.css' => '22270af2',
'rsrc/css/application/config/unhandled-exception.css' => '37d4f9a2',
- 'rsrc/css/application/conpherence/durable-column.css' => '12846d25',
'rsrc/css/application/conpherence/menu.css' => '73774137',
'rsrc/css/application/conpherence/message-pane.css' => '17a9517f',
'rsrc/css/application/conpherence/notification.css' => '04a6e10a',
@@ -78,7 +77,7 @@
'rsrc/css/application/maniphest/task-summary.css' => 'ab2fc691',
'rsrc/css/application/objectselector/object-selector.css' => '029a133d',
'rsrc/css/application/owners/owners-path-editor.css' => '2f00933b',
- 'rsrc/css/application/paste/paste.css' => 'eb997ddd',
+ 'rsrc/css/application/paste/paste.css' => 'aa1767d1',
'rsrc/css/application/people/people-profile.css' => '25970776',
'rsrc/css/application/phame/phame.css' => 'db5682e3',
'rsrc/css/application/pholio/pholio-edit.css' => '3ad9d1ee',
@@ -87,7 +86,7 @@
'rsrc/css/application/phortune/phortune-credit-card-form.css' => 'b25b4beb',
'rsrc/css/application/phortune/phortune.css' => '9149f103',
'rsrc/css/application/phrequent/phrequent.css' => 'ffc185ad',
- 'rsrc/css/application/phriction/phriction-document-css.css' => '0d16bc9a',
+ 'rsrc/css/application/phriction/phriction-document-css.css' => '7d7f0071',
'rsrc/css/application/policy/policy-edit.css' => '815c66f7',
'rsrc/css/application/policy/policy-transaction-detail.css' => '82100a43',
'rsrc/css/application/policy/policy.css' => '957ea14c',
@@ -116,7 +115,7 @@
'rsrc/css/layout/phabricator-filetree-view.css' => 'fccf9f82',
'rsrc/css/layout/phabricator-hovercard-view.css' => '893f4783',
'rsrc/css/layout/phabricator-side-menu-view.css' => '7e8c6341',
- 'rsrc/css/layout/phabricator-source-code-view.css' => '2ceee894',
+ 'rsrc/css/layout/phabricator-source-code-view.css' => '7d346aa4',
'rsrc/css/phui/calendar/phui-calendar-day.css' => 'de035c8a',
'rsrc/css/phui/calendar/phui-calendar-list.css' => 'c1d0ca59',
'rsrc/css/phui/calendar/phui-calendar-month.css' => 'a92e47d2',
@@ -516,7 +515,6 @@
'changeset-view-manager' => '5eb5b98c',
'config-options-css' => '7fedf08b',
'config-welcome-css' => 'b0d16200',
- 'conpherence-durable-column-view' => '12846d25',
'conpherence-menu-css' => '73774137',
'conpherence-message-pane-css' => '17a9517f',
'conpherence-notification-css' => '04a6e10a',
@@ -709,7 +707,7 @@
'multirow-row-manager' => 'b5d57730',
'owners-path-editor' => 'aa1733d0',
'owners-path-editor-css' => '2f00933b',
- 'paste-css' => 'eb997ddd',
+ 'paste-css' => 'aa1767d1',
'path-typeahead' => 'f7fc67ec',
'people-profile-css' => '25970776',
'phabricator-action-list-view-css' => '9ee9910a',
@@ -745,8 +743,8 @@
'phabricator-shaped-request' => '7cbe244b',
'phabricator-side-menu-view-css' => '7e8c6341',
'phabricator-slowvote-css' => '266df6a1',
- 'phabricator-source-code-view-css' => '2ceee894',
- 'phabricator-standard-page-view' => 'df338a4b',
+ 'phabricator-source-code-view-css' => '7d346aa4',
+ 'phabricator-standard-page-view' => '60d0df9a',
'phabricator-textareautils' => '5c93c52c',
'phabricator-title' => '5c1c758c',
'phabricator-tooltip' => '1d298e3a',
@@ -771,7 +769,7 @@
'phortune-credit-card-form-css' => 'b25b4beb',
'phortune-css' => '9149f103',
'phrequent-css' => 'ffc185ad',
- 'phriction-document-css' => '0d16bc9a',
+ 'phriction-document-css' => '7d7f0071',
'phui-action-header-view-css' => '89c497e7',
'phui-action-panel-css' => '3ee9afd5',
'phui-box-css' => '7b3a2eed',
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -1614,6 +1614,7 @@
'PhabricatorDaemonManagementLaunchWorkflow' => 'applications/daemon/management/PhabricatorDaemonManagementLaunchWorkflow.php',
'PhabricatorDaemonManagementListWorkflow' => 'applications/daemon/management/PhabricatorDaemonManagementListWorkflow.php',
'PhabricatorDaemonManagementLogWorkflow' => 'applications/daemon/management/PhabricatorDaemonManagementLogWorkflow.php',
+ 'PhabricatorDaemonManagementReloadWorkflow' => 'applications/daemon/management/PhabricatorDaemonManagementReloadWorkflow.php',
'PhabricatorDaemonManagementRestartWorkflow' => 'applications/daemon/management/PhabricatorDaemonManagementRestartWorkflow.php',
'PhabricatorDaemonManagementStartWorkflow' => 'applications/daemon/management/PhabricatorDaemonManagementStartWorkflow.php',
'PhabricatorDaemonManagementStatusWorkflow' => 'applications/daemon/management/PhabricatorDaemonManagementStatusWorkflow.php',
@@ -4877,6 +4878,7 @@
'PhabricatorDaemonManagementLaunchWorkflow' => 'PhabricatorDaemonManagementWorkflow',
'PhabricatorDaemonManagementListWorkflow' => 'PhabricatorDaemonManagementWorkflow',
'PhabricatorDaemonManagementLogWorkflow' => 'PhabricatorDaemonManagementWorkflow',
+ 'PhabricatorDaemonManagementReloadWorkflow' => 'PhabricatorDaemonManagementWorkflow',
'PhabricatorDaemonManagementRestartWorkflow' => 'PhabricatorDaemonManagementWorkflow',
'PhabricatorDaemonManagementStartWorkflow' => 'PhabricatorDaemonManagementWorkflow',
'PhabricatorDaemonManagementStatusWorkflow' => 'PhabricatorDaemonManagementWorkflow',
diff --git a/src/applications/daemon/management/PhabricatorDaemonManagementReloadWorkflow.php b/src/applications/daemon/management/PhabricatorDaemonManagementReloadWorkflow.php
new file mode 100644
--- /dev/null
+++ b/src/applications/daemon/management/PhabricatorDaemonManagementReloadWorkflow.php
@@ -0,0 +1,27 @@
+<?php
+
+final class PhabricatorDaemonManagementReloadWorkflow
+ extends PhabricatorDaemonManagementWorkflow {
+
+ protected function didConstruct() {
+ $this
+ ->setName('reload')
+ ->setSynopsis(
+ pht(
+ 'Gracefully restart daemon processes in-place to pick up changes '.
+ 'to source. This will not disrupt running jobs. This is an '.
+ 'advanced workflow; most installs should use __phd restart__.'))
+ ->setArguments(
+ array(
+ array(
+ 'name' => 'pids',
+ 'wildcard' => true,
+ ),
+ ));
+ }
+
+ public function execute(PhutilArgumentParser $args) {
+ return $this->executeReloadCommand($args->getArg('pids'));
+ }
+
+}
diff --git a/src/applications/daemon/management/PhabricatorDaemonManagementWorkflow.php b/src/applications/daemon/management/PhabricatorDaemonManagementWorkflow.php
--- a/src/applications/daemon/management/PhabricatorDaemonManagementWorkflow.php
+++ b/src/applications/daemon/management/PhabricatorDaemonManagementWorkflow.php
@@ -389,28 +389,7 @@
return 0;
}
- $running_pids = array_fuse(mpull($daemons, 'getPID'));
- if (!$pids) {
- $stop_pids = $running_pids;
- } else {
- // We were given a PID or set of PIDs to kill.
- $stop_pids = array();
- foreach ($pids as $key => $pid) {
- if (!preg_match('/^\d+$/', $pid)) {
- $console->writeErr(pht("PID '%s' is not a valid PID.", $pid)."\n");
- continue;
- } else if (empty($running_pids[$pid])) {
- $console->writeErr(
- pht(
- 'PID "%d" is not a known Phabricator daemon PID. It will not '.
- 'be killed.',
- $pid)."\n");
- continue;
- } else {
- $stop_pids[$pid] = $pid;
- }
- }
- }
+ $stop_pids = $this->selectDaemonPIDs($daemons, $pids);
if (!$stop_pids) {
$console->writeErr(pht('No daemons to kill.')."\n");
@@ -452,6 +431,35 @@
return 0;
}
+ protected final function executeReloadCommand(array $pids) {
+ $console = PhutilConsole::getConsole();
+
+ $daemons = $this->loadRunningDaemons();
+ if (!$daemons) {
+ $console->writeErr(
+ "%s\n",
+ pht('There are no running daemons to reload.'));
+ return 0;
+ }
+
+ $reload_pids = $this->selectDaemonPIDs($daemons, $pids);
+ if (!$reload_pids) {
+ $console->writeErr(
+ "%s\n",
+ pht('No daemons to reload.'));
+ return 0;
+ }
+
+ foreach ($reload_pids as $pid) {
+ $console->writeOut(
+ "%s\n",
+ pht('Reloading process %d...', $pid));
+ posix_kill($pid, SIGHUP);
+ }
+
+ return 0;
+ }
+
private function processRogueDaemons($grace_period, $warn, $force_stop) {
$console = PhutilConsole::getConsole();
@@ -615,4 +623,33 @@
);
}
+ private function selectDaemonPIDs(array $daemons, array $pids) {
+ $console = PhutilConsole::getConsole();
+
+ $running_pids = array_fuse(mpull($daemons, 'getPID'));
+ if (!$pids) {
+ $select_pids = $running_pids;
+ } else {
+ // We were given a PID or set of PIDs to kill.
+ $select_pids = array();
+ foreach ($pids as $key => $pid) {
+ if (!preg_match('/^\d+$/', $pid)) {
+ $console->writeErr(pht("PID '%s' is not a valid PID.", $pid)."\n");
+ continue;
+ } else if (empty($running_pids[$pid])) {
+ $console->writeErr(
+ "%s\n",
+ pht(
+ 'PID "%d" is not a known Phabricator daemon PID.',
+ $pid));
+ continue;
+ } else {
+ $select_pids[$pid] = $pid;
+ }
+ }
+ }
+
+ return $select_pids;
+ }
+
}

File Metadata

Mime Type
text/plain
Expires
Sun, Jul 27, 12:31 PM (1 d, 7 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
8580860
Default Alt Text
D11899.id.diff (10 KB)

Event Timeline