You are not logged in.

#1 2012-11-27 17:56:42

bx
Member
Registered: 2011-03-21
Posts: 5

systemctl error: Failed to get D-Bus connection

Problem migrating server to pure systemd. Unable to start stop or restart any of my enabled services.  Every command to systemctl except enable/disable results in:
"Failed to get D-Bus connection: No connection to service manager."

I dunno why enable/disable would work but not status, etc...

Quick note on my environment:
Arch installed on my remote server hosted by linode.com
So, my only access is remote ssh.  This is purely a webserver/mailserver type box.

Here's what I did so far:
1) installed systemd and depys according to this guide https://wiki.archlinux.org/index.php/Systemd
2) enabled all services from my rc.conf DAEMONS according to this guide: https://wiki.archlinux.org/index.php/Daemons_List

systemctl enable {foo}.service

3) removed initscripts with

pacman -R initscripts

and installed systemd-sysvcompat w/

pacman -S systemd-sysvcompat

4) rebooted
5) I can confirm that "cat /proc/1/comm" does in fact output "systemd"

Command " sudo ps aux | grep dbus " gives me:

dbus      1781  0.0  0.2   3076  1352 ?        Ss   12:33   0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation

Command "netstat antp |grep dbus" give me:

unix  3      [ ]         STREAM     CONNECTED     4414     /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     4403     /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     4401     /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     4370     /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     4369     /run/dbus/system_bus_socket

I feel I'm almost there and must be missing something stupid...
Please help


Here's a list of services from /etc/systemd/system/multi-user.target.wants

NetworkManager.service
clamd.service
dcron.service
dovecot.service
fail2ban.service
freshclamd.service
iptables.service
nginx.service                                                                                                                                                                                                  
ntpd.service
postfix.service
postgrey.service
remote-fs.target
spamassassin.service
spawn-fcgi-php.service
sshd.service
syslog-ng.service

DAEMONS is the only variable in my rc.conf.  Here it is:

DAEMONS=(syslog-ng iptables network netfs crond sshd ntpd fail2ban mysqld spamd postgrey dovecot postfix nginx spawn-fcgi-php clamav)

systemd man page that: "systemd uses control groups to effectively keep track of processes. Control group information is maintained in the kernel, and is accessible via the file system hierarchy (beneath /sys/fs/cgroup/systemd/)"  I ran the command "findmnt | grep /sys/fs/cgroup" but it returns an empty result...

Last edited by bx (2012-11-29 22:58:06)

Offline

#2 2012-11-27 22:11:26

bx
Member
Registered: 2011-03-21
Posts: 5

Re: systemctl error: Failed to get D-Bus connection

Solved! Had to update kernel. Solution was in /var/log/kernel.log all along:

Nov 27 14:43:56 xxxx kernel: systemd[1]: CONFIG_CGROUPS was not set when your kernel was compiled. Systems without control groups are not supported. We will now sleep for 10s, and then continue boot-up. Expect breakage and please do not file bugs. Instead fix your kernel and enable CONFIG_CGROUPS. Consult http://0pointer.de/blog/projects/cgroups-vs-cgroups.html for more information.

systemd man page that: "systemd uses control groups to effectively keep track of processes. Control group information is maintained in the kernel, and is accessible via the file system hierarchy (beneath /sys/fs/cgroup/systemd/)"  I ran the command

findmnt | grep /sys/fs/cgroup

but it returns an empty result...

I did not see kernel version as a requirement anywhere in docs...
To check your kernal version use command:

uname -r

From the main page https://wiki.archlinux.org/index.php/Systemd

systemd is a system and service manager for Linux that ... uses socket and D-Bus activation for starting services ... keeps track of processes using Linux control groups ...

From wikipedia http://en.wikipedia.org/wiki/Cgroups

cgroups (control groups) is a Linux kernel feature to that was started in 2007 ... and merged to kernel version 2.6.24 ...

I had problems w/ kernel 2.6.39 which turned out to be a deprecated kernal on my linode. My box had like 300+ days of uptime and never had a need to reboot before the change to systemd. Lucky for me, linode made it stupid easy to update the kernel and i was back on track. systemd is cool. worth the journey. thanks!

Last edited by bx (2012-11-29 23:14:02)

Offline

Board footer

Powered by FluxBB