You are not logged in.
Pages: 1
Topic closed
Hi guys!
For the past few days I have been trying to setup systemd to run a user instance (user is 'hans'). Sadly, I have been unable to find a lot of detail in doing this, so much of my work has been trial and error. Just recently I learned about the user@.service and also about loginctl enable-linger. However to what degree they are related to setting up a user instance, I do not know. I set the user 'hans' to 'linger' using the loginctl enable-linger hans command, however I think I might have misunderstood the significance of the command in relation to what I am trying to do.
What I want to for user 'hans' to have his own service file, i.e. irssi.service, and start/stop/enable/disable/etc that service independently of the system. I realize that I could use sudo and configure it to only allow certain commands, and more than that have individual 'system' services for each user, i.e. hansirssi.service, janeirssi.service, joeirssi.service, etc., but I don't want to have to do that unless there is no other option.
So Question 1:
Is it possible to setup up systemd user instances as I envision it? Or have I misunderstood something?
My system:
[root@ru ~]# uname -a
Linux ru 3.5.4-1-ARCH #1 SMP PREEMPT Sat Sep 15 08:12:04 CEST 2012 x86_64 GNU/LinuxThe system is installed in a Proxmox virtual machine with a virtio virtual HDD and standard setup. It is a headless system. I have a complete systemd conversion as per the wiki plus polkit 0.107-2 for use with 'loginctl'.
I tried:
[root@ru ~]$ systemctl enable user@hans.service
The unit files have no [Install] section. They are not meant to be enabled using systemctl.
[root@ru ~]$ systemctl start user@hans.service
[root@ru ~]# systemctl status user@hans.service
user@hans.service - User Manager for hans
Loaded: loaded (/usr/lib/systemd/system/user@.service; static)
Active: active (running) since Fri, 21 Sep 2012 18:33:07 +0100; 42min ago
Main PID: 23189 (systemd)
Status: "Startup finished in 822us."
CGroup: name=systemd:/user/hans/shared
â 23190 (sd-pam)
â systemd-23189
â 23189 /usr/lib/systemd/systemd --userAnd on the user account hans I confirm that the service is running:
[hans@ru ~]$ systemctl status user@hans.service
user@hans.service - User Manager for hans
Loaded: loaded (/usr/lib/systemd/system/user@.service; static)
Active: active (running) since Fri, 21 Sep 2012 18:33:07 +0100; 13s ago
Main PID: 23189 (systemd)
Status: "Startup finished in 822us."
CGroup: name=systemd:/user/hans/shared
â 23190 (sd-pam)
â systemd-23189
â 23189 /usr/lib/systemd/systemd --userBut in regard to actually starting/stopping/enabling a user specific service, I keep getting this error:
[hans@ru ~]$ systemctl start dummyservice.service
Failed to issue method call: Access deniedand when I try by accessing the 'user' instance, I get the following error:
[hans@ru ~]$ systemctl --user
Failed to get D-Bus connection: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11The thing is that dbus is running:
[root@ru ~]# systemctl status dbus
dbus.service - D-Bus System Message Bus
Loaded: loaded (/usr/lib/systemd/system/dbus.service; static)
Active: active (running) since Thu, 20 Sep 2012 18:19:18 +0100; 24h ago
Main PID: 248 (dbus-daemon)
CGroup: name=systemd:/system/dbus.service
â 248 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
Sep 21 18:12:40 ru dbus-daemon[248]: dbus[248]: [system] Successfully activated service 'org.freedesktop.PolicyKit1'
Sep 21 18:12:40 ru dbus[248]: [system] Successfully activated service 'org.freedesktop.PolicyKit1'
Sep 21 18:17:50 ru dbus-daemon[248]: dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.26" (uid.../init ")
Sep 21 18:17:50 ru dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.26" (uid=1000 pid=23167 c...n/init ")
Sep 21 18:32:46 ru dbus-daemon[248]: dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.31" (uid.../init ")
Sep 21 18:32:46 ru dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.31" (uid=1000 pid=23185 c...n/init ")
Sep 21 18:35:45 ru dbus-daemon[248]: dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.34" (uid.../init ")
Sep 21 18:35:45 ru dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.34" (uid=1000 pid=23195 c...n/init ")
Sep 21 18:36:06 ru dbus-daemon[248]: dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.35" (uid.../init ")
Sep 21 18:36:06 ru dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.35" (uid=1000 pid=23197 c...n/init ")Here is the full output from 'journalctl':
Sep 21 18:17:50 ru dbus-daemon[248]: dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.26" (uid=1000 pid=23167 comm="systemctl enable user@hans.service ") interface="org.freedesktop.systemd1.Manager" member="EnableUnitFiles" error name="(unset)" requested_reply="0" destination="org.freedesktop.systemd1" (uid=0 pid=1 comm="/sbin/init ")
Sep 21 18:17:50 ru dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.26" (uid=1000 pid=23167 comm="systemctl enable user@hans.service ") interface="org.freedesktop.systemd1.Manager" member="EnableUnitFiles" error name="(unset)" requested_reply="0" destination="org.freedesktop.systemd1" (uid=0 pid=1 comm="/sbin/init ")
Sep 21 18:32:46 ru dbus-daemon[248]: dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.31" (uid=1000 pid=23185 comm="systemctl start user@hans.service ") interface="org.freedesktop.systemd1.Manager" member="StartUnit" error name="(unset)" requested_reply="0" destination="org.freedesktop.systemd1" (uid=0 pid=1 comm="/sbin/init ")
Sep 21 18:32:46 ru dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.31" (uid=1000 pid=23185 comm="systemctl start user@hans.service ") interface="org.freedesktop.systemd1.Manager" member="StartUnit" error name="(unset)" requested_reply="0" destination="org.freedesktop.systemd1" (uid=0 pid=1 comm="/sbin/init ")
Sep 21 18:33:07 ru systemd[23189]: Failed to open private bus connection: Failed to connect to socket /run/user/hans/dbus/user_bus_socket: No such file or directory
Sep 21 18:35:45 ru dbus-daemon[248]: dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.34" (uid=1000 pid=23195 comm="systemctl start userservice ") interface="org.freedesktop.systemd1.Manager" member="StartUnit" error name="(unset)" requested_reply="0" destination="org.freedesktop.systemd1" (uid=0 pid=1 comm="/sbin/init ")
Sep 21 18:35:45 ru dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.34" (uid=1000 pid=23195 comm="systemctl start userservice ") interface="org.freedesktop.systemd1.Manager" member="StartUnit" error name="(unset)" requested_reply="0" destination="org.freedesktop.systemd1" (uid=0 pid=1 comm="/sbin/init ")
Sep 21 18:36:06 ru dbus-daemon[248]: dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.35" (uid=1000 pid=23197 comm="systemctl start userservice.service ") interface="org.freedesktop.systemd1.Manager" member="StartUnit" error name="(unset)" requested_reply="0" destination="org.freedesktop.systemd1" (uid=0 pid=1 comm="/sbin/init ")
Sep 21 18:36:06 ru dbus[248]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.35" (uid=1000 pid=23197 comm="systemctl start userservice.service ") interface="org.freedesktop.systemd1.Manager" member="StartUnit" error name="(unset)" requested_reply="0" destination="org.freedesktop.systemd1" (uid=0 pid=1 comm="/sbin/init ")Question 2:
Why would dbus reject the 'messages', is there something I need to configure (permissions,...?) in order to get this to work?
I suspect that it is my lacking knowledge to blame for this problem, which is why I have sought help here.
EDIT#1:
I forgot to show you what 'loginctl' was doing:
[root@ru ~]# loginctl user-status hans
hans (1000)
Since: Thu, 20 Sep 2012 18:19:18 +0100; 24h ago
State: lingering
CGroup: name=systemd:/user/hans
â shared
â 23190 (sd-pam)
â systemd-23189
â 23189 /usr/lib/systemd/systemd --userLast edited by sunite (2012-09-21 18:17:35)
Offline
There are a few similar threads e.g. https://bbs.archlinux.org/viewtopic.php?id=148462 .
My admittedly vague understanding is that this aspect of systemd just isn't ready yet.
Offline
Yeah I remember seeing that topic, is it possible that the error as seen in the journalctl for dbus is related to the bug as mention in the topic?
Here is a bug report (w/ patch) about getting dbus --session and systemd --user to work together: https://bugs.freedesktop.org/show_bug.cgi?id=50962
Offline
yes, you need a patched dbus.
have a look at the user-session-units package, it also has a dependency on the patched dbus package: http://aur.archlinux.org/packages.php?ID=60349
You can get it to work (I have with a few workarounds), but it is still quite cumbersome to set up.
Offline
Thanks a lot 65kid, I'll have a go and install the patched dbus, perhaps then it'll work
Offline
I just went through the install process, read through the user-session-units doc, I was finally able to get the user instance working, no Dbus errors
. However I decided to make sure and run 'dbus-monitor' within the user 'hans' and I got the following error message:
Failed to open private bus connection: Failed to connect to socket /run/user/1000/dbus/user_bus_socket: No such file or directoryI checked and there is no such file, however I checked the dbus.socket:
[root@ru user]# cat /usr/lib/systemd/user/dbus.socket
[Unit]
Description=D-Bus System Message Bus Socket
[Socket]
ListenStream=%t/dbus/user_bus_socketAnd dbus.service:
[root@ru user]# dbus-monitor
Failed to open connection to session bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[root@ru user]# cat /usr/lib/systemd/user/dbus.service
[Unit]
Description=D-Bus System Message Bus
Requires=dbus.socket
[Service]
ExecStart=/usr/bin/dbus-daemon --session --address=systemd: --nofork --systemd-activation
ExecReload=/usr/bin/dbus-send --print-reply --session --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfigand as far as I can tell everything see alright there.
EDIT#1:
I just restarted the system to see if my symlink worked for the user-session service. It did, sort of, however the following error occured during boot:
Sep 21 22:15:14 ru systemd[307]: Failed to open private bus connection: Failed to connect to socket /run/user/1000/dbus/user_bus_socket: No such file or directoryLast edited by sunite (2012-09-21 21:22:11)
Offline
are you actually starting dbus.socket from your users' default.target, i.e. does your default.target contain Wants=dbus.socket?
also check
systemctl --user status dbus.socketOffline
Cheers, that's what it was...the fact that the socket was wasn't started, but more than that it was also the incorrect DBUS_SESSION_BUS_ADDRESS variable. ![]()
brilliant, now I think I can get on and finish some work, thanks everyone!
Offline
Hi, sorry to be a bit dense on this. I have a bunch of issues that after much searching
I believe are dbus related in a fashion similar to this thread.
//localhost/130/~/ systemctl --user
Failed to issue method call: Process /bin/false exited with status 1//localhost/141/~/ systemctl --user status dbus.socket
Failed to issue method call: Process /bin/false exited with status 1
//localhost/1/~/ dbus-monitor
signal sender=org.freedesktop.DBus -> dest=:1.1 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
string ":1.1"
method call sender=:1.1 -> dest=org.freedesktop.DBus serial=3 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
string "eavesdrop=true,type='method_call'"
method call sender=:1.1 -> dest=org.freedesktop.DBus serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
string "eavesdrop=true,type='method_return'"
method call sender=:1.1 -> dest=org.freedesktop.DBus serial=5 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
string "eavesdrop=true,type='error'"Offline
Hi, sorry to be a bit dense on this. I have a bunch of issues that after much searching
I believe are dbus related in a fashion similar to this thread.//localhost/130/~/ systemctl --user Failed to issue method call: Process /bin/false exited with status 1//localhost/141/~/ systemctl --user status dbus.socket Failed to issue method call: Process /bin/false exited with status 1 //localhost/1/~/ dbus-monitor signal sender=org.freedesktop.DBus -> dest=:1.1 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired string ":1.1" method call sender=:1.1 -> dest=org.freedesktop.DBus serial=3 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch string "eavesdrop=true,type='method_call'" method call sender=:1.1 -> dest=org.freedesktop.DBus serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch string "eavesdrop=true,type='method_return'" method call sender=:1.1 -> dest=org.freedesktop.DBus serial=5 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch string "eavesdrop=true,type='error'"
You don't have a systemd user session started. This is a very different problem so you should probably start your own thread.
Offline
appreciated. will do.
If you are wondering where your post went, your hit the 'report' link, not the 'reply' link ![]()
Edit: Hey, Jason -- once again, we are in sync
Last edited by ewaller (2012-10-16 20:06:32)
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
The shortest way to ruin a country is to give power to demagogues.— Dionysius of Halicarnassus
---
How to Ask Questions the Smart Way
Offline
Cheers, that's what it was...the fact that the socket was wasn't started, but more than that it was also the incorrect DBUS_SESSION_BUS_ADDRESS variable.
what is the correct DBUS_SESSION_BUS_ADDRESS variable?
Offline
sunite wrote:Cheers, that's what it was...the fact that the socket was wasn't started, but more than that it was also the incorrect DBUS_SESSION_BUS_ADDRESS variable.
what is the correct DBUS_SESSION_BUS_ADDRESS variable?
Hi prudhvi, have a look though the forum (https://bbs.archlinux.org/viewtopic.php?id=176528) or use Google. As far as I know, this variable isn't important anymore.
Offline
I think sunite is correct. I am going to go ahead and close this old thread. If there is still an issue, please feel free to start a new thread and, if you still feel this thread is relevant, provide a link back to this thread from the new one.
Thanks
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
The shortest way to ruin a country is to give power to demagogues.— Dionysius of Halicarnassus
---
How to Ask Questions the Smart Way
Offline
Pages: 1
Topic closed