Skip to content

Improved Systemd Support

Imobach González Sosa edited this page Jul 18, 2018 · 15 revisions

Improving the Services List

Nowadays, the services list is in need of some improvements and fixes. Perhaps, the most important problem is that it lacks of support for "On Demand" services (those services that can be activated via sockets). But, additionally, we would like to propose other UI improvements.

Here is the currnet UI:

You can find an screenshot of the proposed UI below:

Take into account that it is just a mockup and, although some parts are already working, others only contain some testing data (like the Status column).

Let's explore the changes.

Enabling Services via Socket (On Demand)

Currently, the Services Manager dialog allows to enable or disable a service by using the "Enable/Disable" button. This button simply changes the service to be enabled "on boot" (enable) or "manually" (disable). But some services also support on demand activation. For this case, the "Enable/Disable" button is useless.

The less aggressive change from UI point of view might be to replace the current "Enable/Disable" button for a combo-box with 2 or 3 options (depending on the selected service supports sockets activation). So, that combo-box would have the following options:

  • On Boot
  • On Demand
  • Manually

The option "On Demand" only is shown when the service can be activated via socket. And also, the current enable mode for the selected service is pre-selected in the combo-box when changing between services in the list.

You can see it in action in this screencast.

Show Real Status

The "Active" column was designed in the pre-systemd era and it is too simplistic. Nowadays, systemd services can be in different status beyond "active" and "inactive". So instead of mapping those values, we might consider showing the real status (like active (exited)).

Update "Start/Stop" Buttons Labels

The "Start/Stop" buttons label should be updated depending on the service which is already selected. For instance, if a service which is stopped is selected, the button label should be "Start". And viceversa.

Add a Restart Button

A Restart button might be handy, although the user is able to push the Start/Stop button twice.

Logs Viewer

When some service fails to start/stop, it is useful to have access to service logs. Adding a "Show Logs" button might be handy.

Socket Support in Specialized YaST Modules

Currently there are three YaST modules that allow to configure service enablement/disablement that also have socket support. This means it should allow user to configure the service to be started on demand.

yast2-ftp-server

Already adapted and working. Done as part of xinetd drop.

yast2-isns

Currently the module displays start on boot but, in fact, it simply enables the socket (so it is really like starting on demand). We would need more than 1 man/day to solve this problem.

yast2-iscsi-client

Currently mention start on boot, but inside there is a mixture services and sockets. Extending this module to support both, on demand and on boot, is quite risky. Actually, dependencies between services are not clear at all (we expected that iSCSI would use a service which already defines its dependencies). We might need to do some additional research to clarify things a bit.

Old widgets

Old Service Status

snimek obrazovky_2018-07-03_09-19-24

Old CWM AutoStart

snimek obrazovky_2018-07-03_09-24-29

New widget

snimek obrazovky_2018-07-18_08-20-28 snimek obrazovky_2018-07-18_08-28-26 snimek obrazovky_2018-07-18_08-22-37

AutoYaST Support

Currently, AutoYaST does not support services activation via sockets, so we might need to extend the services-manager section in order to support them.

However, this section is processed during 1st stage, so an installer update (self-update) will be needed in order to offer that feature to our users.