You are not logged in.

#1 2014-08-13 03:28:42

vendion
Member
From: Tennessee, USA
Registered: 2010-03-10
Posts: 204
Website

Trouble with some custom SystemD/User unit files

Good evening all,

I'm trying to move programs out of my .xinitrc file and my window manager's startup hooks into systemd user unit files for ease of management, and hopefully more resilient.  I have followed the setup on the wiki page for SystemD/User session (https://wiki.archlinux.org/index.php/Sy … asic_setup) and already have some services already running:

╭─vendion@tyre ~  
╰─➤  systemctl --user status
● tyre
    State: degraded
     Jobs: 0 queued
   Failed: 4 units
    Since: Fri 2014-08-08 20:23:47 EDT; 4 days ago
   CGroup: /user.slice/user-1000.slice/user@1000.service
           ├─3200 /usr/lib/systemd/systemd --user
           ├─3202 (sd-pam)  
           ├─dbus.service
           │ ├─ 3623 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation
           │ ├─ 3711 /usr/lib/at-spi2-core/at-spi-bus-launcher
           │ ├─ 3728 /usr/bin/dbus-daemon --config-file=/etc/at-spi2/accessibility.conf --nofork --print-address 3
           │ ├─ 3996 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session
           │ ├─ 4184 /usr/lib/GConf/gconfd-2
           │ └─29638 /usr/bin/dunst
           ├─udiskie.service
           │ └─3389 /usr/bin/python /usr/bin/udiskie
           ├─spideroak.service
           │ ├─3394 /opt/SpiderOak/lib/SpiderOak
           │ └─3993 /opt/SpiderOak/lib/SpiderOak --spider
           ├─skype.service
           │ └─3396 /usr/lib32/skype/skype
           ├─mpd.service
           │ ├─3386 /usr/bin/mpd --no-daemon
           │ ├─3959 /usr/bin/pulseaudio --start --log-target=syslog
           │ └─4178 /usr/lib/pulse/gconf-helper
           ├─mpdscribble.service
           │ └─3544 /usr/bin/mpdscribble
           └─google-musicmanager.service
             └─3638 /usr/bin/google-musicmanager

Some of them are using unit files provided by the package, others I wrote the unit file for.  The services that are failing that are causing the state to be degraded are:

╭─vendion@tyre ~  
╰─➤  systemctl --user --failed
  UNIT              LOAD   ACTIVE SUB    DESCRIPTION
●clipit.service    loaded failed failed Clipboard manager
●pasystray.service loaded failed failed Pulseaudio system tray icon
●pidgin.service    loaded failed failed Pidgin IM client
●redshift.service  loaded failed failed Redshift display colour temperature adjustment

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

4 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

I had to write the unit files for each of these.

clipit.service unit file: http://sprunge.us/Qjfd

When I check the status for this here is what I get:

● clipit.service - Clipboard manager
   Loaded: loaded (/home/vendion/.config/systemd/user/clipit.service; enabled)
   Active: failed (Result: start-limit) since Fri 2014-08-08 20:24:04 EDT; 4 days ago
 Main PID: 3619 (code=exited, status=1/FAILURE)

Aug 08 20:24:04 tyre systemd[3200]: clipit.service: main process exited, code=exited, status=1/FAILURE
Aug 08 20:24:04 tyre systemd[3200]: Unit clipit.service entered failed state.
Aug 08 20:24:04 tyre systemd[3200]: clipit.service holdoff time over, scheduling restart.
Aug 08 20:24:04 tyre systemd[3200]: Stopping Clipboard manager...
Aug 08 20:24:04 tyre systemd[3200]: Starting Clipboard manager...
Aug 08 20:24:04 tyre systemd[3200]: clipit.service start request repeated too quickly, refusing to start.
Aug 08 20:24:04 tyre systemd[3200]: Failed to start Clipboard manager.
Aug 08 20:24:04 tyre systemd[3200]: Unit clipit.service entered failed state.

pasystray.service unit file: http://sprunge.us/BWWR
Status output

● pasystray.service - Pulseaudio system tray icon
   Loaded: loaded (/home/vendion/.config/systemd/user/pasystray.service; enabled)
   Active: failed (Result: start-limit) since Fri 2014-08-08 20:24:12 EDT; 4 days ago
 Main PID: 3769 (code=killed, signal=TRAP)

Aug 08 20:24:12 tyre systemd[3200]: pasystray.service: main process exited, code=killed, status=5/TRAP
Aug 08 20:24:12 tyre systemd[3200]: Unit pasystray.service entered failed state.
Aug 08 20:24:12 tyre systemd[3200]: pasystray.service holdoff time over, scheduling restart.
Aug 08 20:24:12 tyre systemd[3200]: Stopping Pulseaudio system tray icon...
Aug 08 20:24:12 tyre systemd[3200]: Starting Pulseaudio system tray icon...
Aug 08 20:24:12 tyre systemd[3200]: pasystray.service start request repeated too quickly, refusing to start.
Aug 08 20:24:12 tyre systemd[3200]: Failed to start Pulseaudio system tray icon.
Aug 08 20:24:12 tyre systemd[3200]: Unit pasystray.service entered failed state.

pidgen.service unit file: http://sprunge.us/KgKV
Status output

● pidgin.service - Pidgin IM client
   Loaded: loaded (/home/vendion/.config/systemd/user/pidgin.service; enabled)
   Active: failed (Result: start-limit) since Fri 2014-08-08 20:24:04 EDT; 4 days ago
 Main PID: 3620 (code=exited, status=1/FAILURE)

Redshift.service unit file: http://sprunge.us/IDCC
Status output:

● redshift.service - Redshift display colour temperature adjustment
   Loaded: loaded (/home/vendion/.config/systemd/user/redshift.service; enabled)
   Active: failed (Result: start-limit) since Fri 2014-08-08 20:23:58 EDT; 4 days ago
     Docs: http://jonls.dk/redshift/
 Main PID: 3517 (code=exited, status=1/FAILURE)

Aug 08 20:23:57 tyre systemd[3200]: redshift.service: main process exited, code=exited, status=1/FAILURE
Aug 08 20:23:57 tyre systemd[3200]: Unit redshift.service entered failed state.
Aug 08 20:23:58 tyre systemd[3200]: redshift.service holdoff time over, scheduling restart.
Aug 08 20:23:58 tyre systemd[3200]: Stopping Redshift display colour temperature adjustment...
Aug 08 20:23:58 tyre systemd[3200]: Starting Redshift display colour temperature adjustment...
Aug 08 20:23:58 tyre systemd[3200]: redshift.service start request repeated too quickly, refusing to start.
Aug 08 20:23:58 tyre systemd[3200]: Failed to start Redshift display colour temperature adjustment.
Aug 08 20:23:58 tyre systemd[3200]: Unit redshift.service entered failed state.

I know that my unit files for these services work because if I manually start them with "systemctl --user start <service>" then they work just fine, but when systemD is trying to start them when I login they fail.  I have dbus setup like the wiki says to, and "DBUS_SESSION_BUS_ADDRESS" is defined.  I also have the DISPLAY environment variable set in /etc/systemd/system/user@.service.d/display.conf like the wiki suggests as well.  I know that SystemD user sessions still may not be ready for prime time but I could use a better way to manage these startup programs than the .xinitrc file.

Thanks in advance for any help

Offline

Board footer

Powered by FluxBB