Skip to content

Commit 0b54fa6

Browse files
author
Alessandro Chitolina
committed
fixed master user/group change
1 parent 4fa7580 commit 0b54fa6

File tree

2 files changed

+26
-10
lines changed

2 files changed

+26
-10
lines changed

src/DependencyInjection/Configuration.php

+22-10
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,6 @@ public function getConfigTreeBuilder()
4646
->values(['quiet', 'normal', 'verbose', 'very_verbose', 'debug'])
4747
->defaultValue('very_verbose')
4848
->end()
49-
->arrayNode('master')
50-
->info('Master execution configuration')
51-
->children()
52-
->scalarNode('user')
53-
->info('Change user of master process to')
54-
->defaultValue('nobody')
55-
->end()
56-
->scalarNode('group')->defaultValue('nogroup')->end()
57-
->end()
58-
->end()
5949
->scalarNode('plugins_dir')
6050
->info('Plugins base directory')
6151
->defaultValue('%application.root_dir%/plugins')
@@ -65,13 +55,35 @@ public function getConfigTreeBuilder()
6555

6656
$this->addConnectionsNode($root);
6757
$this->addQueuesNode($root);
58+
$this->addMasterNode($root);
6859

6960
$this->pluginManager->addConfiguration($root);
7061

7162
return $treeBuilder;
7263
}
7364

7465
private function addQueuesNode(NodeDefinition $root)
66+
{
67+
$processUser = posix_getpwuid(posix_geteuid());
68+
$processGroup = posix_getgrnam(posix_getegid());
69+
70+
$root
71+
->children()
72+
->arrayNode('master')
73+
->info('Master execution configuration')
74+
->children()
75+
->scalarNode('user')
76+
->info('Change user of master process to')
77+
->defaultValue($processUser['name'])
78+
->end()
79+
->scalarNode('group')->defaultValue($processGroup)->end()
80+
->end()
81+
->end()
82+
->end()
83+
;
84+
}
85+
86+
private function addMasterNode(NodeDefinition $root)
7587
{
7688
$root
7789
->children()

src/Master.php

+4
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,10 @@ public function sanityCheck()
105105
private function daemonize()
106106
{
107107
$currentProcess = $this->container->get('process');
108+
$masterOptions = $this->container->getParameter('master');
109+
110+
$currentProcess->setUser($masterOptions['user']);
111+
$currentProcess->setGroup($masterOptions['group']);
108112

109113
// Double fork magic, to prevent daemon to acquire a tty
110114
if ($pid = $currentProcess->fork()) {

0 commit comments

Comments
 (0)