[pulseaudio-discuss] --check option seems not to work from su(1) as daemon user

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Wed Aug 27 03:42:23 PDT 2014


On Tue, 2014-08-26 at 07:18 -0600, Glenn Golden wrote:
> Here are some pre-questions that I'll need to understand before even starting
> to tackle the Wiki description of the runtime dirs and pid files:
> 
> ============================================================================
> * --start:
>     "Start PulseAudio if it is not running  yet. This  is different from 
>      starting PulseAudio without --start which would fail if PA is already
>      running."
> 
>   Q1: What is the semantic distinction between those two sentences?  
>       Parsing straightforwardly seems to lead to this:
> 
>       If (--start option is specified on cmdline)
>       {
> 	if (PA is not running)		
> 	{
> 	    Start PA;
> 	}
> 	else			# PA is running
> 	{
> 	    Don't start PA;	# What exit code is supplied?

Zero.

> 	}
>       }
> 
>       else			# PA is not specfied on cmdline
>       {
> 	if (PA running)
> 	{
> 	    Don't start PA, and return nonzero exit code;
> 	}
> 	else			# PA is not running
> 	{
> 	    Start PA;
> 	}
>      }
> 
>      But the outer if/else seem to have no distinction between them, other
>      than (perhaps) the exit code supplied by the top clause may differ from
>      the explicitly nonzero error code of the bottom clause. Is there any other
>      difference?

No, the exit code is the only significant difference.

> 
>   Q2: In the above pseudocode, how are the tests for running-ness performed?

It's done by creating the pid file. pa_pid_file_create() returns -1, 0
or 1 depending on whether the creation failed due to an error (-1), the
creation succeeded (0) or the creation failed due to there being already
a daemon running (1).

>   Q3: Related to Q2 and Q7 below: What if there are multiple PAs running,
>       some of which may have been started with --use-pid-file=0?.  Are these
>       non-PIDfile-d PA's included in the notion of "running" as used in
>       the above --start option description?

Gah, I wasn't aware of this silly option... No, the daemons started with
--use-pid-file=0 are invisible to the --start logic.

> ============================================================================
> * --kill:
>   "Kill an already running PulseAudio daemon of the calling user.
>    (Equivalent to sending a SIGTERM)."
> 
>   Q4: (Ok, this not really a question but an obsevation): The same ambiguity
>       issue exists here as for --check, i.e regarding which PA daemon is being
>       referred to, and what "calling user" might mean. Whatever way I wind up
>       solving the doc issue for --check will have to be applied here as well.

True.

> ============================================================================
> * --daemonize[=BOOL]
>   "Daemonize after startup, i.e. detach from the terminal." 
> 
>   Q5: Is there any interaction between this option and the creation (or not)
>       of a PID file?  I.e., if --daemonize=0, does it still create a pid file?
>   
>       Please tell me the answer to the latter question is "yes", otherwise
>       I'm going to have to start drinking heavily because it will roughly
>       quadruple the complexity of what I need to describe in the Wiki writeup.
> 
>       (So you should feel free to lie to me about it and say "yes", lol...)

The answer is "yes", and I don't lie, I promise :)

> ============================================================================
> * --use-pid-file=[BOOL]
>   "Create a PID file. If this options is disabled it is possible to run
>    multiple sound servers per user."
> 
>   Q6: Suppose one or more PA daemons have been started with --use-pid-file=0
>       (hence there are no pid files corresponding to these daemon processes.)
>       In this case, is it possible to use --kill or --check to refer to such
>       daemon process(es)? [Quick experiments seem to indicate answer is "no"]

The answer is indeed "no".

>   Q7: Same as Q7, but w.r.t. "--start" option: How is the "--start" pseudocode
>       in Q1 affected by the possible presence of running PA daemon(s) that have 
>       no associated PID file(s)?

Daemons without pid files are invisible to the --start logic.

-- 
Tanu



More information about the pulseaudio-discuss mailing list