Wicd daemon fails to start.

For starters. I use wicd as a replacement for network manager due to my need to have multiples of VLAN’s configured on my hard-wired connection. This is not possible through Yast or NetworkManager, and so, I have switched to traditional methods.

My wireless works with Network Manager, as well works with manual configuration / connection from https://en.opensuse.org/SDB:Tracking_down_wireless_problems#wpa_supplicant

So, I switched to traditional ifup method from within Yast → Network Devices → Network Settings → Global Options → “Traditional Method With ifup”

I installed the wicd suplicant from: http://software.opensuse.org/package/wicd
and have tried 2 of the 3 versions under 13.1 the current one installed is:

**Wicd Version: **


linux-gunq:/home/************ # rpm -qi wicd
Name        : wicd
Version     : 1.7.2.4
Release     : 30.1
Architecture: noarch
Install Date: Thu May  1 20:59:45 2014
Group       : Productivity/Networking/System
Size        : 16950
License     : GPL-2.0
Signature   : RSA/SHA1, Tue Apr  1 13:37:41 2014, Key ID caf5c7e1a9ba0727
Source RPM  : wicd-1.7.2.4-30.1.src.rpm
Build Date  : Tue Apr  1 13:37:22 2014
Build Host  : build11
Relocations : (not relocatable)
Vendor      : obs://build.opensuse.org/home:KT315
URL         : http://wicd.sourceforge.net/
Summary     : A wireless and wired network manager
Description :
A complete network connection manager
Wicd supports wired and wireless networks, and capable of
creating and tracking profiles for both.  It has a
template-based wireless encryption system, which allows the user
to easily add encryption methods used.  It ships with some common
encryption types, such as WPA and WEP. Wicd will automatically
connect at startup to any preferred network within range.

This is a metapackage, it allows installation of all the components of
Wicd, including one of the clients, which must be manually chosen.
Distribution: home:KT315 / openSUSE_13.1
linux-gunq:/home/********* #

What is expected:

  • Starting the machine should show an indication within the notification area of some type of a wireless symbol or connection.
  • The application should start automatically and automatically connect to remembered wireless networks

What happens:

  • On startup I am prompted for a password for the application “wicd”
  • the application fails to start the daemon and therefor errors out and will not start

– further troubleshooting
tailing the logs while starting:

2014-05-01T10:30:57.545240-03:00 linux-gunq dbus[803]: [system] Activating via systemd: service name='org.wicd.daemon' unit='dbus-org.wicd.daemon.service'
2014-05-01T10:30:57.545572-03:00 linux-gunq systemd[1]: Starting Wicd a wireless and wired network manager for Linux...
2014-05-01T10:30:57.610416-03:00 linux-gunq wicd[17247]: It seems like the daemon is already running.
2014-05-01T10:30:57.610740-03:00 linux-gunq wicd[17247]: If it is not, please remove /var/run/wicd/wicd.pid and try again.
2014-05-01T10:30:57.616187-03:00 linux-gunq systemd[1]: wicd.service: main process exited, code=exited, status=1/FAILURE
2014-05-01T10:30:57.616490-03:00 linux-gunq systemd[1]: Failed to start Wicd a wireless and wired network manager for Linux.
2014-05-01T10:30:57.616673-03:00 linux-gunq systemd[1]: Unit wicd.service entered failed state.
..............
2014-05-01T10:31:22.544600-03:00 linux-gunq dbus[803]: [system] Failed to activate service 'org.wicd.daemon': timed out

I also read that further troubleshooting could be done through: wicd-curses


linux-gunq:~ # wicd-curses 
Can't connect to the daemon, trying to start it automatically...
Traceback (most recent call last):
  File "/usr/share/wicd/curses/wicd-curses.py", line 1043, in <module>
    setup_dbus()
  File "/usr/share/wicd/curses/wicd-curses.py", line 1031, in setup_dbus
    dbus_ifaces = dbusmanager.get_dbus_ifaces()
  File "/usr/lib/python2.7/site-packages/wicd/dbusmanager.py", line 36, in get_dbus_ifaces
    return DBUS_MANAGER.get_dbus_ifaces()
  File "/usr/lib/python2.7/site-packages/wicd/dbusmanager.py", line 62, in get_dbus_ifaces
    if not self._dbus_ifaces: connect_to_dbus()
  File "/usr/lib/python2.7/site-packages/wicd/dbusmanager.py", line 48, in connect_to_dbus
    return DBUS_MANAGER.connect_to_dbus()
  File "/usr/lib/python2.7/site-packages/wicd/dbusmanager.py", line 79, in connect_to_dbus
    proxy_obj = self._bus.get_object("org.wicd.daemon", '/org/wicd/daemon')
  File "/usr/lib/python2.7/site-packages/dbus/bus.py", line 241, in get_object
    follow_name_owner_changes=follow_name_owner_changes)
  File "/usr/lib/python2.7/site-packages/dbus/proxies.py", line 248, in __init__
    self._named_service = conn.activate_name_owner(bus_name)
  File "/usr/lib/python2.7/site-packages/dbus/bus.py", line 180, in activate_name_owner
    self.start_service_by_name(bus_name)
  File "/usr/lib/python2.7/site-packages/dbus/bus.py", line 278, in start_service_by_name
    'su', (bus_name, flags)))
  File "/usr/lib/python2.7/site-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
linux-gunq:~ # 

From this point I am over my head, so in an attempt to resolve I went to my best friend google… okay my only friend google.

he provided me with links like ](http://
https://bbs.archlinux.org/viewtopic.php?id=144706
)https://bbs.archlinux.org/viewtopic.php?id=144706

The helpfulness of the above post is limited as it is for arch linux…
someone references installing xorg in order to fix this… I don’t buy it.

here is what I have installed


linux-gunq:~ # rpm -qa | grep wicd
wicd-lang-1.7.2.4-30.1.noarch
wicd-1.7.2.4-30.1.noarch
wicd-gtk-1.7.2.4-30.1.noarch
wicd-daemon-1.7.2.4-30.1.noarch
wicd-cli-1.7.2.4-30.1.noarch
wicd-curses-1.7.2.4-30.1.noarch
python-wicd-1.7.2.4-30.1.noarch
linux-gunq:~ # 

project page → https://launchpad.net/wicd/+download

possibly related to → http://askubuntu.com/questions/438607/error-running-wicd-curses-on-fresh-install-of-13-10-server
** but this being a different distro I’m not sure
https://bugs.launchpad.net/ubuntu/+source/wicd/+bug/1132529

please hep me…

So this one was fun…

to save you the TL;DR

add an adm user to your machine and comment out the invalid second close of stdout


vim /usr/share/wicd/daemon/wicd-daemon.py +1672
   # sys.stdout.close()

now, how did I get there, well sure wasn’t on my own…

we started out by stracing the process for wicd


linux-gunq:/usr/lib/python2.7/site-packages/wicd #strace -s500 -f -ff -vf wicd

this didn’t really take us anywhere… but it was interesting to see the output

in between here you should note that we did have to check the ps output for wicd and then remove the lock file…


ps -ef | grep -i wicd
linux-gunq:/usr/lib/python2.7/site-packages/wicd # rm /var/run/wicd/wicd.pid

so we went on to check the launcher…


linux-gunq:/usr/lib/python2.7/site-packages/wicd # cat /usr/sbin/wicd
#!/bin/sh

exec /usr/bin/python -O /usr/share/wicd/daemon/wicd-daemon.py $@
linux-gunq:/usr/lib/python2.7/site-packages/wicd #

now we know it’s some python, which is a good thing for troubleshooting…
we ran it manually by doing:


linux-gunq:/usr/lib/python2.7/site-packages/wicd # python -m trace --trace /usr/share/wicd/daemon/wicd-daemon.py
.......................
wicd-daemon.py(1778):     if do_daemonize: daemonize()
 --- modulename: wicd-daemon, funcname: daemonize
wicd-daemon.py(1641):     try:
wicd-daemon.py(1642):         pid = os.fork()
wicd-daemon.py(1643):         if pid > 0:
wicd-daemon.py(1644):             sys.exit(0)
wicd-daemon.py(1645):     except OSError, e:
 --- modulename: threading, funcname: _after_fork
 --- modulename: trace, funcname: _unsettrace
threading.py(1219):     _active_limbo_lock = _allocate_lock()
threading.py(1222):     new_active = {}
threading.py(1223):     current = current_thread()
 --- modulename: threading, funcname: currentThread
threading.py(1159):     try:
threading.py(1160):         return _active[_get_ident()]
threading.py(1224):     with _active_limbo_lock:
.........................

we determined that their was an error within the main function

 /usr/share/wicd/daemon/wicd-daemon.py
line 1794
            try:
                if wpath.log_group:
                    #print wpath.log_group
                    import grp
                    group = grp.getgrnam(wpath.log_group)
                    os.chown(logpath, 0, group[2])
            except:


all of this before realizing that the program does actually follow some code standards :frowning:

so we did have the “group” in order to resolve this failure…

open /etc/group and add yourself an adm group…

we did however find a man page on the daemon:


man /usr/share/man/man5/wicd-manager-settings.conf.5.gz

as well found the switches for wicd non-daemonized


wicd -f

how fun is that… possibly some more verbose output would help, alongside checking if files were open before you closed them…
and I don’t know, maybe a configurtion file to allow you to specify what group should be running this…

Have a good weekend.

Before doing things the “old way” described by tyler_d,

  1. Unfortunately, “rpm -qi” doesn’t describe where your wicd package is from, only from somewhere in obs. Recommend instead the following which names the repository it’s from
zypper info wicd
  1. If the wicd package was actually built for 13.1, it’s possible that a systemd unit file was created and you just need to enable it to start on bootup, so first execute the following
systemctl status wicd

If it returns something like “file not found” then no unit file exists. If it returns something that includes something like “stopped” then you only need to run the following to manually start wicd

systemctl start wicd

And the following to set wicd to start on bootup

systemctl enable wicd

Some observations:
Not sure why your logfile said failed to start wicd because it was already found to be running. Maybe it’s not the critical error, that sounded only like a non-critical error.
Note that if a systemd Unit file actually exists, it should be doing things like PID assignment and “systemctl status” displaying <relevant> log entries, hopefully so that you don’t have to search for what is or is not relevant

HTH,
TSU

For me adding the adm group is solving the problem, but the two commands described by TSU2 were also needed:

1° adding the adm group in /etc/group

2° enabling the wicd service

# systemctl enable wicd

3° starting the wicd service

# systemctl start wicd

I’m working on

# lsb_release -rd
Description:    openSUSE 13.1 (Bottle) (x86_64)
Release:        13.1

My version of wicd is the following

# zypper info wicd
Loading repository data...
Reading installed packages...


Information for package wicd:
-----------------------------
Repository: network:utilities
Name: wicd
Version: 1.7.2.4-26.3
Arch: noarch
Vendor: obs://build.opensuse.org/network:utilities

This info should be transmitted to make a resolving solution about the existence of this group (adm).

Because i was not able to start “wicd” i’ve first this bug report : https://answers.launchpad.net/wicd/+question/240467