[pulseaudio-discuss] --check option seems not to work from su(1) as daemon user
Tanu Kaskinen
tanu.kaskinen at linux.intel.com
Wed Aug 20 03:26:19 PDT 2014
(added pulseaudio-discuss back to CC)
On Tue, 2014-08-19 at 16:26 -0600, Glenn Golden wrote:
> Tanu Kaskinen <tanu.kaskinen at linux.intel.com> [2014-08-19 23:21:58 +0300]:
> > On Tue, 2014-08-19 at 13:44 -0600, Glenn Golden wrote:
> > > $ pulseaudio -v --check
> > > I: [pulseaudio] main.c: Daemon not running
> > >
> > >
> > > Why?
> >
> > Probably because $XDG_RUNTIME_DIR points to the other user's directory.
> > The --check option uses $XDG_RUNTIME_DIR to figure out where to look for
> > the pid file.
> >
>
> Thanks Tanu, and also for your quick response, much appreciated. Figured it
> was something like that.
>
> Permit me to grouse momentarily though about the man page text, which says:
>
> --check
> Return 0 as return code when the PulseAudio daemon is already
> running for the calling user, or non-zero otherwise
>
> This is completely misleading: The test that is performed by the --check
> option evidently has _nothing whatsoever_ to do with the "calling user",
> it is determined entirely by the XDG_RUNTIME_DIR envar, regardless of the
> user who executed the "pulaseaudio --check" command. The blurb should simply
> state that the check is performed based on the user whose runtime pid dir
> is pointed to by XDG_RUNTIME_DIR, and then it will be entirely accurate and
> complete.
I'd rather say that the check is performed with the assumption that
XDG_RUNTIME_DIR is set correctly for the calling user. The check is
non-functional if XDG_RUNTIME_DIR points to the wrong directory, because
the answer will always be "not running", because most likely pulseaudio
won't have access to the directory that XDG_RUNTIME_DIR points to.
Also, if you're going to mention XDG_RUNTIME_DIR in the documentation,
you should probably also mention that if XDG_RUNTIME_DIR isn't set at
all, then the check assumes that HOME[1] is set correctly.
[1] or whatever is used on the platform, on Windows it was some other
environment variable
> As phrased, it's just asking for confusion. I doubt I'd be able to find any
> experienced Unix/Linux user who would read the phrase "the calling user" in
> the given context and not interpret it to mean the UID or EUID of the user
> who executed the "pulseaudio --check" command.
I agree.
--
Tanu
More information about the pulseaudio-discuss
mailing list