Bug 28689

Summary: drakxservices may display incorrect status after starting or stopping a service - exiting and rerunning draxservices will update the display
Product: Mageia Reporter: david Cossé <saveurlinux>
Component: RPM PackagesAssignee: Mageia tools maintainers <mageiatools>
Status: NEW --- QA Contact:
Severity: normal    
Priority: Normal CC: arromdee2, bittwister2, davidwhodgins, herman.viaene, mageia, mageia, ouaurelien, pfortin, yvesbrungard
Version: Cauldron   
Target Milestone: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard: MGA8TOO MGA9TOO
Source RPM: drakxtools-18.65-1.mga9.src.rpm CVE:
Status comment:

Description david Cossé 2021-03-31 09:24:15 CEST
Theme name: Adwaita
Kernel version = 5.10.25-desktop-1.mga8
Distribution=Mageia release 8 (Official) for x86_64
CPU=Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz

drakxservices after installing openssh-server i wanted to start it from this GUI tools but clicking on start didn't start the services.

I think this tool is deprecated and chould be removed or updated since it does not manage systemd services.
Comment 1 Bit Twister 2021-04-02 14:51:05 CEST
 drakxservices does not allow access to triggers/timers  either.

easiest fix might modify systemadm from the systemd-ui rpm and add a enable/disable button.

unit button controls found in bottom pane of screen.

CC: (none) => bittwister2

Comment 2 Martin Whitaker 2021-04-02 17:05:32 CEST
(In reply to david Cossé from comment #0)
> drakxservices after installing openssh-server i wanted to start it from this
> GUI tools but clicking on start didn't start the services.
> 
> I think this tool is deprecated and chould be removed or updated since it
> does not manage systemd services.

Works fine for me. Here are the relevant snippets from the system journal when I stop and start it from the GUI buttons:

... drakxservices[2724]: running: /bin/systemctl --no-block stop sshd.service
... systemd[1]: Stopping OpenSSH server daemon...
... sshd[3067]: Received signal 15; terminating.
... systemd[1]: Stopped OpenSSH server daemon.
... drakxservices[2724]: running: /bin/systemctl --quiet is-active sshd.service

... drakxservices[2724]: running: /bin/systemctl --no-block restart sshd.service
... systemd[1]: Condition check resulted in OpenSSH Server Key Generation being skipped.
... systemd[1]: Starting OpenSSH server daemon...
... drakxservices[2724]: running: /bin/systemctl --quiet is-active sshd.service
... sshd[3086]: Server listening on 0.0.0.0 port 22.
... sshd[3086]: Server listening on :: port 22.
... systemd[1]: Started OpenSSH server daemon.

Check your system journal for error messages.


(In reply to Bit Twister from comment #1)
>  drakxservices does not allow access to triggers/timers  either.

When was the last time you tried using it? I added support for systemd sockets and timers 6 months ago.

CC: (none) => mageia

Comment 3 Aurelien Oudelet 2021-04-03 17:12:27 CEST
(In reply to Bit Twister from comment #1)
>  drakxservices does not allow access to triggers/timers  either.
> 
> easiest fix might modify systemadm from the systemd-ui rpm and add a
> enable/disable button.
> 
> unit button controls found in bottom pane of screen.

drakxservices IS able to manipulate systemd sockets and timers. I confirm Martin's Comment.

(In reply to david Cossé from comment #0)
> Theme name: Adwaita
> Kernel version = 5.10.25-desktop-1.mga8
> Distribution=Mageia release 8 (Official) for x86_64
> CPU=Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz
> 
> drakxservices after installing openssh-server i wanted to start it from this
> GUI tools but clicking on start didn't start the services.
> 
> I think this tool is deprecated and chould be removed or updated since it
> does not manage systemd services.

If openssh-server does not start, it must be a config error.
Can you try this:

$ systemctl status openssh-server.service


Or, Are you talking about DrakWizard, GUI that can setup server service?
drakwizard-4.11-1.mga8

Status: NEW => NEEDINFO
CC: (none) => ouaurelien

Comment 4 david Cossé 2021-04-05 07:45:42 CEST
(In reply to Aurelien Oudelet from comment #3)
> (In reply to Bit Twister from comment #1)
> >  drakxservices does not allow access to triggers/timers  either.
> > 
> > easiest fix might modify systemadm from the systemd-ui rpm and add a
> > enable/disable button.
> > 
> > unit button controls found in bottom pane of screen.
> 
> drakxservices IS able to manipulate systemd sockets and timers. I confirm
> Martin's Comment.
> 

I speak about the GUI tools, i didn't tried the command line tool but used systemctl command.
It currently works, now for sshd.service since it has been first started throw command line using systemctl but it didn't work just after installation.
An other example:
When trying the systemctl service if on the GUI tools I click on stop it appears as ended but systemctl status avahi-daemon.service still return "active", if on the GUI I click on start it remains as "ended".

> (In reply to david Cossé from comment #0)
> > Theme name: Adwaita
> > Kernel version = 5.10.25-desktop-1.mga8
> > Distribution=Mageia release 8 (Official) for x86_64
> > CPU=Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz
> > 
> > drakxservices after installing openssh-server i wanted to start it from this
> > GUI tools but clicking on start didn't start the services.
> > 
> > I think this tool is deprecated and chould be removed or updated since it
> > does not manage systemd services.
> 
> If openssh-server does not start, it must be a config error.
> Can you try this:
> 
> $ systemctl status openssh-server.service
> 
> 
> Or, Are you talking about DrakWizard, GUI that can setup server service?
> drakwizard-4.11-1.mga8

After fresh install I do not have the package "DrakWizard" install.
Comment 5 Dave Hodgins 2021-04-05 19:46:16 CEST
If you start drakxservices from a konsole or similar gui terminal program, it
displays a msg ...
Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

# urpmf /etc/rc.d/init.d/|sort -u|wc -l
97

So there are still 97 packages where drakxservices does still work.

CC: (none) => davidwhodgins

Comment 6 Martin Whitaker 2021-04-05 23:36:11 CEST
(In reply to Dave Hodgins from comment #5)
> If you start drakxservices from a konsole or similar gui terminal program, it
> displays a msg ...
> Note: This output shows SysV services only and does not include native
>       systemd services. SysV configuration data might be overridden by native
>       systemd configuration.
> 
>       If you want to list systemd services use 'systemctl list-unit-files'.
>       To see services enabled on particular target use
>       'systemctl list-dependencies [target]'.

That output comes when drakxservices runs '/sbin/chkconfig --list --type xinetd'. Ordinary legacy services are controlled via systemctl/systemd, otherwise you would see that message repeated many more times.

> # urpmf /etc/rc.d/init.d/|sort -u|wc -l
> 97
> 
> So there are still 97 packages where drakxservices does still work.

Not to mention all the packages that have native systemd services.


(In reply to david Cossé from comment #4)
> I speak about the GUI tools, i didn't tried the command line tool but used
> systemctl command.
> It currently works, now for sshd.service since it has been first started
> throw command line using systemctl but it didn't work just after
> installation.
> An other example:
> When trying the systemctl service if on the GUI tools I click on stop it
> appears as ended but systemctl status avahi-daemon.service still return
> "active", if on the GUI I click on start it remains as "ended".

I suspect some/all of these problems are because drakxservices starts and stops services using '/bin/systemctl --no-block' and then immediately runs '/bin/systemctl is-active' to update the status. This is a race - if the service is slow to start or stop, the displayed status will be wrong. It also means that drakxservices doesn't detect/report when starting or stopping a service fails, which IMO is a major flaw.
Aurelien Oudelet 2021-04-06 16:33:17 CEST

Assignee: bugsquad => mageiatools
Source RPM: drakxtools-18.45-1.mga8 => drakxtools-18.45-1.mga8.src.rpm

Comment 7 Aurelien Oudelet 2021-04-06 16:34:08 CEST
Meanwhile, drakxservices correctly lists all native systemd units and sysv one.

Status: NEEDINFO => NEW

Comment 8 Nicolas Lécureuil 2021-04-06 17:56:11 CEST
drakxservices seems completly functionnal now.

Can someone confirm ?

CC: (none) => mageia

Comment 9 Herman Viaene 2021-04-08 16:02:23 CEST
No, for Mageia 8 x86-64 using it from MCC, I can stop services and the status is immediately reflected correctly. But when I start the service again, the status remains "stopped". I have to get out and back in to see the correct status. The service is started correctly.

CC: (none) => herman.viaene

Comment 10 david Cossé 2021-04-08 16:35:04 CEST
(In reply to Herman Viaene from comment #9)
> No, for Mageia 8 x86-64 using it from MCC, I can stop services and the
> status is immediately reflected correctly. But when I start the service
> again, the status remains "stopped". I have to get out and back in to see
> the correct status. The service is started correctly.

Same for me, I tried this morning with cups service, on UI it was stopped but systemctl display it is active.
Comment 11 Nicolas Lécureuil 2021-04-08 16:44:21 CEST
thank you for the details.
Martin Whitaker 2021-04-10 19:06:47 CEST

Summary: drakxservices is deprecated => drakxservices may display incorrect status after starting or stopping a service - exiting and rerunning draxservices will update the display

Comment 12 sturmvogel 2022-07-06 07:09:21 CEST
*** Bug 30615 has been marked as a duplicate of this bug. ***

CC: (none) => pfortin

Comment 13 Morgan Leijström 2023-09-13 08:16:54 CEST
*** Bug 32279 has been marked as a duplicate of this bug. ***

CC: (none) => arromdee2

papoteur 2023-11-08 12:29:47 CET

CC: (none) => yvesbrungard
Version: 8 => Cauldron
Whiteboard: (none) => MGA8TOO MGA9TOO

papoteur 2023-11-08 12:31:26 CET

Source RPM: drakxtools-18.45-1.mga8.src.rpm => drakxtools-18.65-1.mga9.src.rpm

Comment 14 papoteur 2023-11-08 14:21:32 CET
(In reply to Martin Whitaker from comment #6)

> I suspect some/all of these problems are because drakxservices starts and
> stops services using '/bin/systemctl --no-block' and then immediately runs
> '/bin/systemctl is-active' to update the status. This is a race - if the
> service is slow to start or stop, the displayed status will be wrong. It
> also means that drakxservices doesn't detect/report when starting or
> stopping a service fails, which IMO is a major flaw.
What about removing --no-block option?
I just tested with httpd service. It can stop. But when I use "Start", it stays to say "Stopped".
Without the "--no-block" option, it shows "started" again just clicking on "Start".
I have not tested more widely.

Man page says:
       --no-block
           Do not synchronously wait for the requested operation to finish. If
           this is not specified, the job will be verified, enqueued and
           systemctl will wait until the unit's start-up is completed. By
           passing this argument, it is only verified and enqueued. This option
           may not be combined with --wait.

       --wait
           Synchronously wait for started units to terminate again. This option
           may not be combined with --no-block. Note that this will wait
           forever if any given unit never terminates (by itself or by getting
           stopped explicitly); particularly services which use
           "RemainAfterExit=yes".

           When used with is-system-running, wait until the boot process is
           completed before returning.