16. July 2020

systemctl Failed to list units: Access denied

During the upgrade of Debian or Ubuntu server you may encounter strange failing of scripts which are restarting services.

For some reason it’s not possible to call systemcl and any operation fails with Access denied even for root.

Here is example:

systemctl list-units
Failed to list units: Access denied

The fix to this problem it is sufficient to send TERM signal to process with PID #1:

kill -TERM 1

24. July 2019

Creating Python virtualenv fails with error: Could not find a suitable TLS CA

You can create Python virtualenv using command:

virtualenv -p /usr/bin/python3 py-env3

You may encounter following strange error:

  Collecting setuptools
Traceback (most recent call last):
  File "/usr/share/python-wheels
OSError: Could not find a suitable TLS CA certificate bundle, invalid path: /etc/ssl/certs/ca-certificates.crt
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 145, in apport_excepthook
    os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'wb') as f:
FileNotFoundError: [Errno 2] No such file or directory: '/var/crash/_usr_bin_virtualenv.1000.crash'

The error message is not very clear. Problem is caused by ca-certificates and it could be fixed by command:

sudo update-ca-certificates

11. June 2019

How to start D-Bus in Docker container

Many Linux applications require D-Bus which is not running by default in Docker containers.

When you attempt to start the application you might get the following error:

D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/var/lib/dbus/machine-id": No such file or directory
See the manual page for dbus-uuidgen to correct this issue.
  D-Bus not built with -rdynamic so unable to print a backtrace

First of all you need to generate missing machine-id by command:

dbus-uuidgen > /var/lib/dbus/machine-id

The application will be able to start even when the daemon is not running.

To start the D-Bus daemon inside the container you need to run following command on Ubuntu, Centos 7, Centos 8:

mkdir -p /var/run/dbus
dbus-daemon --config-file=/usr/share/dbus-1/system.conf --print-address

Command on Centos 6:

dbus-daemon --config-file=/etc/dbus-1/system.conf --print-address

Now the daemon is running and your application should be able to start. The output should look like this:


27. April 2019

How to start TigetVNC server on port 5900

When you start TigerVNC server by following command:


then it will automatically bind to port 5901.

When you want to start the server on 5900 then you need to type following command:

vncserver :0

This looks a little bit mysterious, but if you dig through the documentation you might find that there is the following mapping:

:0 -> 5900
:1 -> 5901
:2 -> 5902
:3 -> 5903

Now it’s clear that when you omit the parameter, it will default to code :1 which is mapped to the port 5901.

21. February 2019

How to run openSUSE for PowerPC64LE on CPU x86_64

First of all install required package for running ppc:

sudo zypper install qemu-ppc

Download the ISO built for PowerPC architecture (ppc64le). E.g. openSUSE-Leap-42.3-NET-ppc64le-Build0130-Media.iso.

Create file which will contain disk image:

qemu-img create suse.img 10G

Now, start the ppc64le virtual and boot from cdrom:

qemu-system-ppc64 -boot d -cdrom openSUSE-Leap-42.3-NET-ppc64le-Build0130-Media.iso -m 1024 -hda suse.img

After the installation you can simply run the installed system:

qemu-system-ppc64 -m 1024 -hda suse.img

Note: -m 1024 stands for “memory 1 GB”