changelog : - remove setsid - use [A-Za-z0-9]{1,32} pattern for services
Signed-off-by: Alexandre Derumier <aderum...@odiso.com> --- PVE/CephTools.pm | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/PVE/CephTools.pm b/PVE/CephTools.pm index ec91f44..1eda1aa 100644 --- a/PVE/CephTools.pm +++ b/PVE/CephTools.pm @@ -191,9 +191,23 @@ sub setup_pve_symlinks { } sub ceph_service_cmd { - # ceph daemons does not call 'setsid', so we do that ourself - # (fork_worker send KILL to whole process group) - PVE::Tools::run_command(['setsid', 'service', 'ceph', '-c', $pve_ceph_cfgpath, @_]); + my ($action, $service) = @_; + + if(-f "/lib/systemd/system/ceph-osd@.service") { + + if ($service && $service =~ m/^(mon|osd|mds|radosgw)(\.([A-Za-z0-9]{1,32}))?$/) { + $service = $3 ? "ceph-$1\@$3" : "ceph-$1.target"; + } else { + $service = "ceph.target"; + } + + PVE::Tools::run_command(['/bin/systemctl', $action, $service]); + + } else { + # ceph daemons does not call 'setsid', so we do that ourself + # (fork_worker send KILL to whole process group) + PVE::Tools::run_command(['setsid', 'service', 'ceph', '-c', $pve_ceph_cfgpath, $action, $service]); + } } sub list_disks { -- 2.1.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel